פרויקט מסכם לתואר בוגר במדעים )B.Sc( במתמטיקה שימושית

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "פרויקט מסכם לתואר בוגר במדעים )B.Sc( במתמטיקה שימושית"

Transcript

1 המחלקה למתמטיקה Department of Mathematics פרויקט מסכם לתואר בוגר במדעים )B.Sc( במתמטיקה שימושית מערכת בינה מלאכותית לפתרון המשחק 2048 בעזרת אלגוריתם אקספקטימקס ואופטימיזצית הנחיל יפתח בן זקן 2048 AI Solver using Expectimax Algorithm & Particle Swarm Optimization Iftah Ben Zaken

2 פרויקט מסכם לתואר בוגר במדעים )B.Sc( במתמטיקה שימושית מערכת בינה מלאכותית לפתרון המשחק 2048 בעזרת אלגוריתם אקספקטימקס ואופטימיזצית הנחיל יפתח בן זקן 2048 AI Solver using Expectimax Algorithm & Particle Swarm Optimization Iftah Ben Zaken Advisor: Dr. Gabriel Ben-Simon מנחה: ד"ר גבריאל בן סימון Karmiel 2015 כרמיאל

3 תקציר פרוייקט זה עוסק מחד במשחקים ואיך לפתור אותם, ומאידך בניתוח מתמטי של המשחק 2048 וכתיבת אלגוריתם בינה מלאכותית שיפתור אותו. תחילה נסקור את נושא המשחקים והבינה המלאכותית. נדבר על ההיסטוריה של פתרון ממוחשב של משחקים ועל סוגי משחקים שונים. בנוסף, נדבר על עצי משחק ועל אלגוריתם חשוב מתורת המשחקים בשם מינימקס.)Minimax( נגדיר גם מהי פונקצית הערכה היוריסטית. בשלב השני נתאר ונמדל את המשחק נסביר את החוקים ואת האסטרטגיות השונות לנצח בו. ננסח היוריסטיקות שיעזרו לנו להעריך לוח משחק ונדבר על האלמנט הסטוכסטי במשחק, שבגללו עלינו להשתמש באלגוריתם אקספקטימקס )Expectimax( במקום במינימקס. לבסוף ננסח את האלגוריתם לפתרון המשחק בצורת נוסחה מתמטית רקורסיבית. בשלב השלישי של הפרוייקט נציג שיטות אופטימיזציה מטה-היוריסטיות בצורה כללית ואת אופטימיזציית הנחיל Optimization( )Particle Swarm בפרט. נעטוף את האלגוריתם שניסחנו בשלב הראשון בתהליך אופטימיזציה אשר יאפשר לו להשיג תוצאות גבוהות יותר. לסיום, נדון בתוצאות ונסכם. 1

4 תוכן עניינים.1 הקדמה... 3 רקע תאורטי... 4 ובינה מלאכותית חלק א' 2.1 משחקים 2.2 עץ משחק אלגוריתם מינימקס פונקציית הערכה היוריסטית חלק ב' בניית המודל המתמטי המשחק האלמנט הסטוכסטי אלגוריתם אקספקטימקס היוריסטיקות למשחק ניסוח מתמטי של האלגוריתם לפתרון המשחק חלק ג' תהליך האופטימיזציה אופטימיזציה מטה-היוריסטית Optimization(...) Metaheuristic אופטימיזציית הנחיל Optimization( )Particle Swarm מהלך הניסוי תוצאות סיכום ביבליוגרפיה נספח הוראות התקנה והפעלה

5 הקדמה 1. כשהיה עלי לבחור נושא לעבודת הגמר, ניסיתי למצוא רעיון לפרוייקט קצת שונה, משהו מסקרן ומלהיב. היה לי גם חשוב למצוא רעיון שישלב בין שני התחומים האהובים עלי, מתמטיקה ומדעי המחשב. באותו זמן ישב בסלון אחיין שלי והוא שיחק במשחק 2048 בסמארטפון, נאבק ללא הצלחה להגיע לאריח 2,048. בזמן שניסיתי ללמד אותו שיטות יעילות לשחק את המשחק עלה במוחי הרעיון אכתוב תוכנה שתפתור את המשחק. תחום המשחקים תמיד סיקרן אותי והיה לי מוכר ברמה התאורטית מקורסים שלמדתי כגון תורת המשחקים, בינה מלאכותית, תורת הסתברות ותהליכים אקראיים. לעומת זאת, מעולם לא הזדמן לי לבחון את הידע בצורה מעשית. בשבילי, מטרת הפרוייקט היא להשתמש בידע ובכלים שרכשתי במהלך התואר, לנתח את המשחק בצורה מתמטית ולתכנן אלגוריתם שיפתור את המשחק בצורה מיטבית. היעד שהצבתי בתחילת העבודה על הפרוייקט הוא להגיע לאריחים בסדר גודל של 4,096-8,192 שזה קצת יותר טוב משחקן אנושי ממוצע. 3

6 חלק א' רקע תאורטי משחקים ובינה מלאכותית תורת המשחקים היא ענף במתמטיקה וכלכלה העוסק באסטרטגיות וקבלת החלטות. ליתר דיוק, בתורת המשחקים לומדים ומפתחים מודלים מתמטיים של שיתוף פעולה ועימות בין משתתפים רציונלים ואינטלגנטים אשר כל אחד מהם מעוניין לנצח/להרוויח. לתורת המשחקים שימושים רבים בכלכלה, מדע המדינה, פסיכולוגיה, לוגיקה, ביולוגיה ומדעי המחשב. בעבודה זו, נדבר על תורת המשחקים בהקשר של בינה מלאכותית פתרון משחקים בעזרת המחשב. כבר בימיו הראשונים של המחשב, חוקרים ראו את הפוטנציאל הגלום בו לפתרון בעיות מתמטיות ומשחקים ולשם כך השתמשו באלגוריתמים מתורת המשחקים בשנת נכתבה התוכנה הראשונה שמשחקת שחמט ע"י לא אחר מאשר אלן טיורינג, ממציא מכונת טיורינג, אשר נחשב בעיני רבים לאבי מדעי המחשב והבינה המלאכותית. טיורינג התבסס על מאמר שהתפרסם שנה קודם ע"י קלוד שאנון, אבי תורת האינפורמציה. במשך כמעט יובל לא הצליחו תוכנות המחשב לנצח יריב אנושי משמעותי, דבר המראה את גודל האתגר בבניית תוכנה לפתרון המשחק. חקירה של משחק מורכב מתאפשרת על ידי הפשטתו לאחד מכמה מודלים כלליים, הניתנים לניתוח מתמטי. המטרה היא "לפתור" את המשחק, כלומר, לזהות בו את דרכי הפעולה הצפויות של השחקנים השונים וכך לייעץ על דרכי פעולה מומלצות. מאז ועד היום חלה התפתחות משמעותית בכוח המחשוב, בשיטות המחקר ובאלגוריתמים. בשנת 1997 ניצח מחשב המכונה "כחול עמוק" את אלוף העולם דאז גארי קספרוב. באותו משחק מפורסם, "כחול עמוק" סרק כ- 200 מיליון מצבים בשניה והשתמש בטכניקות מתקדמות של בינה מלאכותית שאיפשרו לו )במקרים מסוימים( לצפות 40 מהלכים קדימה. תוכנות שחמט מודרניות מתפקדות אפילו טוב יותר. למשחקים שונים ישנה רמת מורכבות שונה. כך למשל ישנם משחקים פחות מורכבים משחמט, שבהם מספר מהלכים קטן יחסית כמו איקס-עיגול ודמקה. משחקים אלו נחשבים "פתורים" במובן שכל המהלכים האפשריים במשחק יכולים להיות מחושבים מראש בזמן סביר. כאשר משחק הוא פתור, קיים אלגוריתם שמבטיח ניצחון או תיקו לשחקן מול כל מהלך אפשרי של היריב. בעזרת האלגוריתם ניתן לבנות תכנת מחשב שלעולם לא תפסיד במשחק. היכולת "לפתור" משחק תלויה במידה רבה בכמות המהלכים האפשריים בכל תור. בשחמט למשל, ישנם בממוצע 35 מהלכים אפשריים בכל תור ואורך משחק ממוצע של כ- 80 תורים. מספר המצבים האפשריים במשחק מוערך בכ שמספר האטומים ביקום הנראה הוא בתחום זו. מצבים שונים של הלוח. לשם השוואה, כיום מעריכים כמובן שלא קיים כרגע מחשב המסוגל להתמודד עם כמות כזו של מידע. בהמשך אציג שיטות שונות להתמודדות עם בעיה 4

7 2.2 עץ משחק בתורת המשחקים, עץ משחק הוא גרף מכוון שצמתיו מייצגים מצבי משחק והקשתות הינם המהלכים המובילים למצבי המשחק הנ"ל. עץ משחק שלם הוא עץ שהשורש שלו מייצג את המצב ההתחלתי וממנו יוצאים כל המהלכים האפשריים בצורה של עץ. מספר העלים בעץ משחק הוא כמספר הדרכים השונות שהמשחק יכול להיות משוחק. לדוגמה, בעץ המשחק המלא של איקס עיגול ישנם 255,168 עלים. איור 1 עץ משחק חלקי של המשחק איקס-עיגול לעצי משחק יש ייצוג נכבד בתחום האלגוריתמיקה והבינה המלאכותית. זוהי דרך נוחה למדל תהליך קבלת החלטות במשחק כך שבכל תור מבוצע חיפוש על עץ המשחק ונבחר המהלך הטוב ביותר. שיטה אחת כזו בה מטיילים בעץ ולוקחים החלטות בהתאם למצב המשחק נקראת אלגוריתם מינימקס.)Minimax( 5

8 2.3 אלגוריתם מינימקס זהו אלגוריתם רקורסיבי שמטרתו להחליט מהו המהלך הבא שעל השחקן לבצע בהינתן מצב משחק מסויים. התאוריה שמאחורי האלגוריתם פורסמה בשנת המשחקים. הוא צוטט כמי שאמר: 1928 ע"י ג'ון פון נוימן אבי תורת "As far as I can see, there could be no theory of games without that theorem I thought there was nothing worth publishing until the Minimax Theorem was proved". מינימקס הינו אלגוריתם חזק מאוד ופשוט יחסית להבנה. הוא מתבסס על בניית עץ משחק הפורס את כל אפשרויות המשחק של שחקן א', את התגובות של שחקן ב', את תגובותיו של שחקן א' לשחקן ב' וכך הלאה עד להגעה למצב סופי )נצחון, הפסד, תיקו( או לעומק מוגדר מראש. העלים של העץ הם המצבים הסופיים במשחק states( )terminal והם מכילים ערך מספרי אשר מייצג לנו כמה מצב זה הוא "טוב". מתן ציון למצב של לוח נעשה ע"י פונקציית הערכה ( evaluation.)function במשחק איקס-עיגול למשל, קל לתת ציון למצבים הסופיים. מצב סופי שבו שחקן א' מנצח יכיל את הערך 1 כאשר מצבים של תיקו והפסד יכילו ערכים של 0 ו- 1- בהתאמה. האלגוריתם יעזור לשחקן א' לבצע את מהלכיו ע"י בחירת המקסימום בכל תור של השחקן. מינימקס מוצא את המהלך הכי טוב ע"י מעבר אחורה מתחתית העץ עד הנקודה בה אמורה להתבצע ההחלטה. בכל שלב, מניחים ששחקן א' מנסה למקסם )maximize( את הסיכוי שינצח בעוד שבתור הבא שחקן ב' האלגוריתם. ינסה למזער )minimize( את הסיכוי ששחקן א' ינצח. מכאן גם מגיע שמו של נסרוק את העץ החל בעלים, דרך הצמתים הפנימיים שמעליהם ועד השורש. הציון שניתן לכל צומת הוא הערך הגבוה ביותר של העלים/צמתים שתחתיו, אם אותו צומת מסמל מהלך של שחקן א'. מנגד, נבחר את הערך הנמוך ביותר של העלים/צמתים שתחתיו אם אותו צומת מסמל מהלך של היריב שחקן ב'. כשנגיע לשורש, נבחר בצומת שמתחת לשורש עם הציון הגבוה ביותר כי השורש מסמל מהלך של שחקן א'. 6

9 איור 2 המחשת פעולת אלגוריתם המינימקס במשחק איקס-עיגול: שחקן א' )X( מנסה למקסם את הציון בעוד שחקן ב' )O( מנסה למזער אותו. זהו מצב לוח המבטיח ניצחון לשחקן א' )X( מכיוון שמבין שלושת המהלכים האפשריים, הוא יבחר את המקסימום הענף הימני של עץ המשחק. נשים לב שתהליך זה שונה ממציאת מצב עם ציון מקסימלי בלוח. מובן שאם נבחר במהלך )ענף( המוביל לעלה עם הציון הגבוה ביותר, לא מובטח לנו שאכן נגיע לאותו עלה. העלה הטוב ביותר הוא התסריט האופטימלי מבחינתנו, וניתן להניח שהיריב לא יוביל אותנו בהמשך הנתיב אלא יסיט אותו לנתיב הטוב ביותר מבחינתו. לדוגמא, באיור 3 קיים מצב אופטימלי עם ציון 100 אך היריב ממזער את הציון ולכן יבחר את 9 דווקא מה שיכריח אותנו לפנות לענף השמאלי בו היריב בחר 10. זוהי דוגמא שממחישה שמינימקס הוא אלגוריתם שמרן שאינו נוטה לסיכונים. איור - 3 עץ מינימקס הממחיש שמרנות בעיה קשה בבניית עץ מינימקס היא הזיכרון הרב שהוא צורך. מספר הצמתים שיש ליצור עולה בטור הנדסי ככל שנעמיק את החיפוש. במשחקים בהם גורם ההסתעפות factor( )branching גבוה במיוחד נהוג להשתמש בגרסה משודרגת של האלגוריתם הנקראת "גיזום אלפא-ביתא" Alpha-(.)Beta Pruning בגרסה זו לא בונים את כל העץ אלא מבטלים ענפים שברור לנו עוד בשלב מוקדם כי הם לא מועילים לחיפוש שלנו. כלומר, אנו יכולים להיתקל בענף שגרוע מפתרונות שכבר ראינו, ו"לגזום אותו". גיזום אלפא-ביתא מקטין את מספר הצמתים בעץ ממוצע לשורש מספר הצמתים המקורי. 7

10 שיטה נוספת להתמודד עם עומק עץ החיפוש היא הגבלת עומק החיפוש. ניתן להחליט שבונים את העץ רק עד עומק מסויים ואז עוצרים. בשיטה זו אמנם לא מגיעים עד המצבים הסופיים אך לפעמים מספיק להסתכל רק כמה מהלכים קדימה כדי לבצע החלטה טובה. דרך אחת היא להחליט על עומק קבוע. דרך נוספת היא לבנות עץ דינמי אשר ענפים מסויימים שנראים מבטיחים ייבנו עד עומק גבוה ולעומת זאת, הבנייה של ענפים מאכזבים תיפסק מוקדם בעומק נמוך. מקובל גם להגביל את זמן בניית העץ וריצת האלגוריתם לזמן סביר המקובל במשחק אנושי. במקרה זה, האלגוריתם יבנה את העץ לא עד עומק מסוים אלא עד שייגמר לו הזמן. אלגוריתם מינימקס: 1. function minimax(node, depth, maximizingplayer) 2. if depth = 0 or node is a terminal node 3. return the heuristic value of node 4. if maximizingplayer 5. bestvalue := - 6. for each child of node 7. val := minimax(child, depth - 1, FALSE) 8. bestvalue := max(bestvalue, val) 9. return bestvalue 10. else 11. bestvalue := for each child of node 13. val := minimax(child, depth - 1, TRUE) 14. bestvalue := min(bestvalue, val) 15. return bestvalue 8

11 2.4 פונקציית הערכה היוריסטית כאשר עץ המינימקס נבנה, כל מצב סופי מקבל ציון הערכה לגבי כמה הוא טוב. לשם כך צריך לתת למחשב דרך להסתכל על לוח ולהבין מה טוב בו ומה פחות. את הלוגיקה הזו אנו ממשים בעזרת היוריסטיקות. היוריסטיקה )heuristic( היא כלל חשיבה פשוט המבוסס על הגיון פשוט או אינטואיציה ומציע דרך קלה ומהירה לקבלת החלטות. בהקשר של משחקים, היוריסטיקה היא פונקציה המנתחת מצב של לוח לפי הגיון כלשהו ומחזירה ציון למצב הלוח. דוגמאות להיוריסטיקות פשוטות בשחמט למשל הם כמות המלכות של השחקן פחות כמות המלכות של היריב או מספר המהלכים האפשריים. h 1 = no. of white queens no. of black queens h 2 = no. of possible moves כאשר נבחן מצבי לוח שחמט לפי ההיוריסטיקה הראשונה, האלגוריתם ייתן ציונים גבוהים יותר למצבים בהם היריב איבד את המלכה שלו ולכן ינסה ללכת לכיוון מצבים אלו בעץ המשחק. ההיוריסטיקה השנייה למשל יכולה לעזור בכך שהאלגוריתם ישאף למצבים בהם יש הרבה מהלכים, בניגוד ללהיות תקוע כשהיריב מכריח אותך לבצע מהלכים רעים. כל חוקר מנסה למצוא את ההיוריסטיקות שהכי מתאימות לאופי של המשחק אותו הוא חוקר. לשם כך מגדירים פונקציה שמעריכה לוח משחק ובנוייה מכמה תת-פונקציות )היוריסטיקות( אשר לכל אחת משקל שונה בציון. N f(b) = w k h k (B) = w 1 h 1 (B) + + w k h k (B) k=1 לכל משחק צריך גם למצוא את האיזון העדין בין ההיוריסטיקות. פונקציית הערכה תכלול בדרך כלל יותר מהיוריסטיקה אחת וחלקן חשובות יותר מאחרות. בשחמט למשל, ברור שההיוריסטיקה "לא לאבד מלכה" חשובה יותר מההיוריסטיקה "לא לאבד צריח". מצד שני קיימים מצבים במשחק שדווקא כן שווה להקריב את המלכה שלך. את המשקלים ניתן לקבוע ידנית לפי אינטואיציה או ע"י תהליך אופטימיזציה שעליו נרחיב בהמשך. פונקציית ההערכה שבנוייה מההיוריסטיקות עוזרת לנו בכך שהיא מאפשרת לנו להעריך מצב לוח שנמצא בשלב ביניים במשחק ולא רק במצבים סופיים של נצחון/תיקו/הפסד. כאשר מגבילים את עומק החיפוש יש צורך בהיוריסטיקות חזקות שיודעות לזהות לוח טוב או רע גם אם הוא רחוק ממצב סיום. 9

12 חלק ב' בניית המודל המתמטי המשחק הוא משחק שחקן יחיד למחשב/סמארטפון שנוצר ע"י איטלקי בן 19 בשם גבריאלה צ'ירולי Cirulli( )Gabriele בהשראת משחקים דומים כגון Threes! ו מטרת המשחק הינה להסיט אריחים )משבצות בעלות ערך מספרי( על לוח המשחק ולאחד צמדים של אריחים זהים כדי ליצור אריחים עם ערך כפול. כך למשל, איחוד של שני אריחים בעלי ערך 4 יתן אריח אחד עם ערך 8. ניצחון במשחק מושג כאשר מצליחים לאחד שני אריחים בעלי ערך 1024 לאריח אחד בעל הערך לאחר הנצחון אפשר להמשיך לשחק ולנסות להגיע לאריחים בעלי ערכים גבוהים יותר ויותר. איור 4 הוראות המשחק 2048 כפי שמצורפות למשחק. בצד ימין מוצג לוח המשחק, באמצע דוגמה להסטת הלוח ובצד שמאל דוגמה לאיחוד אריחים. לוח המשחק )איור 4 ימין( הינו בגודל 4x4 ועליו כאמור מבצעים את הפעולות על המשבצות )הסטה של הלוח ואיחוד אריחים(. בכל תור של המחשב, נבחרת משבצת ריקה בצורה אקראית ומקבלת ערך 2 בהסתברות 0.9 או ערך 4 בהסתברות 0.1. השחקן בתורו בוחר לאן להסיט את הלוח: ימינה, שמאלה, למעלה או למטה. כאשר הלוח מוסט ימינה או שמאלה, כל האריחים זזים ימינה או שמאלה בכל שורה כאילו כוח המשיכה פועל כעת בצד שאליו הוסט הלוח )איור 4 אמצע(. כאשר ישנם שני אריחים זהים באותה שורה וביניהם אין אריח שונה, הסטה של המסך לכיוון מסויים תחבר בין שני האריחים הזהים )איור 4 שמאל(. לפי אותו היגיון פועלת גם הסטה של המסך לכיוון מעלה או מטה, כאשר התזוזה של האריחים מתבצעת בעמודות ולא בשורות. המשחק מסתיים כאשר הלוח מלא ולשחקן אין יותר אפשרויות לאחד אריחים. 10

13 בזמן יציאת המשחק, הוא סחף אחריו מיליוני מעריצים בכל הגילאים שהתמכרו לפשטות, לכיף ובעיקר לאתגר השכלי שהוא מספק. שחקן אנושי ממוצע יצליח לאחר מאמץ מסויים להגיע לאריח 2048 אך יהיה לו קשה מאוד להגיע לאריחים גבוהים יותר. ישנם אנשים מסויימים בעלי יכולות גבוהות ומשמעת טובה אשר יכולים להגיע לאריחים בגובה 8,192 ואף 16,384. החסם העליון לאריח הגבוה ביותר הוא 131,072 אך הוא תאורטי בלבד והסיכוי להגיע לתוצאה כזו שואף לאפס. נכון לתחילת 2015, התוצאה הגבוהה ביותר שהושגה )ללא רמאות ופריצת המשחק( היא הגעה לאריח בגובה 32,768 והיא הושגה בעזרת תוכנת אינטליגנציה מלאכותית. בחודשים שלאחר יציאת המשחק, כאשר קצת נרגעה המולת המעריצים, צצו ברחבי הרשת אינספור דיונים מתמטיים/הנדסיים של התוצאה ואסטרטגיות שונות לנצחון במשחק. הקשורים במידול הלוח, ייצוג מתמטי של הבעיה, חסמים תאורטיים 11

14 3.2 האלמנט הסטוכסטי 2048 הוא משחק בעל אלמנט סטוכסטי. המחשב מגריל את המהלך הבא שלו ואין לוגיקה מאחורי החלטתו. בבינה מלאכותית קיימות שתי גישות שונות המתמודדות עם בעיה זו. גישה ראשונה קובעת שאי אפשר להתייחס אל החלטות המחשב כאל החלטות יריב לוגי. נתייחס למשחק זה כאילו קיים שחקן יחיד שמבצע החלטות ותורו של המחשב הוא כמו הטלת קוביה אין לוגיקה מאחורי החלטותיו והוא לא מנסה למזער את הציון )זה יכול לקרות בגלל האקראיות אבל המחשב גם יכול למקסם את הציון באותה מידה(. מסיבה זו נטען, לא רצוי לנסות לפתור את המשחק בעזרת אלגוריתם מינימקס שתואר לעיל. יש הטוענים דווקא את הטענה ההפוכה למרות שהמחשב לא מתכנן את מהלכיו בצורה לוגית ניתן להחמיר וכן להתייחס אליו ככזה. בצורה זו, המשחק יתנהל בצורה יותר זהירה והאלגוריתם לא ינסה להגיע למצבים שמהם יהיה לו קשה לצאת. הוא יתייחס להגרלות המחשב כהחלטות של יריב לוגי שרוצה ברעתנו וינסה למזער את הנזקים ממהלכים הרסניים )גם אם אקראיים(. לפי גישה זו, ניתן להשתמש באלגוריתם מינימקס גם לפתרון משחקים עם אקראיות. החלטתי ללכת עם הגישה הראשונה שהיא קצת יותר אופטימית. המטרה של הפרוייקט היא להגיע לציון כמה שיותר גבוה במשחק והאקראיות תאפשר לנו להגיע למצבים מעולים שיריב לוגי לא היה מאפשר, מצבים שיוכלו להוביל לתוצאות גבוהות יותר. קיימים משחקים רבים בעלי מאפיינים סטוכסטים ולכן קיימת גם גרסה מיוחדת של מינימקס אשר מיועדת למשחקים אלו. גרסה זו נקראת אלגוריתם אקספקטימקס )Expectimax( והיא מתמודדת עם הבעיה שתוארה לעיל. 12

15 3.3 אלגוריתם אקספקטימקס זוהי גרסה משודרגת של אלגוריתם מינימקס בה מתמודדים עם האלמנט האקראי של המשחק. בשש-בש למשל, לפני כל תור שמבצע שחקן עליו להטיל זוג קוביות ותוצאת ההגרלה משפיעה ישירות על המהלכים. במשחק 2048 זה מתבטא בתורו של המחשב שמציב אריח במיקום אקראי ריק בלוח. בנוסף לצמתים שקיימים באלגוריתם מינימקס, שתפקידיהם למקסם node( )maximizer או למזער node( )minimizer את הציון לפי תור השחקן, כאן קיים גם צומת מזל node( )chance שתפקידו לדמות את האלמנט האקראי במשחק ומחזיר את התוחלת של בניו. בצורה זו, כאשר מסתכלים על ערך הצומת, משקללים אותו עם הסיכוי שנגיע לצומת זה. בדוגמא שבאיור ניתן לראות שאלגוריתם אקספקטימקס יבחר ללכת בכיוון הצומת עם הערך המקסימלי 100 מכיוון שאין יריב שיסיט אותו מהצומת אלא רק מזל. נניח לרגע שהסיכוי של כל צומת להיווצר שווים, אזי התוחלת של הענף הימני תיהיה 54.5 בעוד שבענף השמאלי היא תיהיה שווה רק ל- 10. ברור שעדיף לעשות את המהלך שיוביל אותנו לענף הימני כי שם הסיכוי לרווח גדול מאוד וההפסד הפוטנציאלי מאוד קטן )100 מול 10 לעומת 9 מול 10(. אלגוריתם זה מצטיין במובן שהוא לא מניח הנחות )מה יעשה היריב במצב כזה או אחר( אלא פשוט מבצע חיפוש סטטיסטי חכם על כל האפשרויות והולך בענפים שבהם הסיכוי הכי טוב להגיע למשבצות טובות. חשוב לציין שלאלגוריתם זה לא ניתן לממש גיזום אלפא-ביתא בגלל האלמנט האקראי. בגיזום אלפא-ביתא, מבטלים ענפים שלמים תוך כדי בניית העץ מבלי לחשב את הציון של כל הילדים. באלגוריתם אקספקטימקס עושים חישוב סטטיסטי על פני כל מרחב המצבים ולכן ביטול של ענף יפגע בנכונות החישוב. איור - 5 עץ אקספקטימקס הממחיש אופטימיות שיטה אחרת שכן אפשר להשתמש בה כדי להתמודד עם גודל העץ היא Memoization )לא קיים תרגום לעברית(. בשיטה זו מכינים מבנה נתונים נוסף לצד העץ table( )hash שיזכור את הציונים של מצבי לוח שכבר ראינו. ניתן לשים לב שבמהלך משחק, בונים את עץ המשחק שוב ושוב עבור לוחות שונים, והמון מצבים של הלוח חוזרים על עצמם. זה קורה מכיוון שלמצב משחק מסויים אפשר להגיע בכמה אופנים שונים. לכן, אם לאחר חישוב האלגוריתם עבור מצב משחק כלשהו נאחסן את התוצאה, כשניתקל במצב זה שנית לא נצטרך לבנות את כל עץ המשחק )או הענף( מחדש אלא פשוט נפנה למבנה הנתונים ונבקש את התוצאה פעולה מהירה וחסכונית משמעותית. 13

16 אלגוריתם אקספקטימקס: 1. function expectimax(node, depth) 2. if node is a terminal node or depth = 0 3. return the heuristic value of node 4. if the adversary is to play at node 5. let α := + 6. foreach child of node 7. α := min(α, expectimax(child, depth-1)) 8. else if we are to play at node 9. let α := foreach child of node 11. α := max(α, expectimax(child, depth-1)) 12. else if random event at node 13. let α := foreach child of node 15. α := α + (Probability[child] * expectimax(child,depth-1)) 16. return α 14

17 3.4 היוריסטיקות למשחק 2048 על מנת לנסח היוריסטיקות טובות צריך לדעת לשחק את המשחק ולהבין מהי אסטרטגיה טובה. חשוב לאמר שציון של היוריסטיקה יכול להיות גם שלילי. אפשר לנסח כלל מסוים כך שהוא יהווה עונש )Penalty( ויגרע מהציון הכללי של כל ההיוריסטיקות. די ברור כבר בהתחלה בשלב הלימוד של המשחק - ששווה לסדר את הלוח בצורת משולש כך שהערך הגבוה ביותר יהיה באחת הפינות והערכים הגבוהים הבאים צמודים אליו. שמירה על צורה זו עוזרת ללוח להישאר מסודר ושאריחים גבוהים נשארים קרובים אחד לשני )עוזר במיזוג ערכים גבוהים(. איור - 6 דוגמאות ללוח בצורת משולש לכל פינה נגדיר מטריצת משקל. כאשר מכפילים את ערכי הלוח בערכי מטריצת משקל כלשהי, תתקבל תוצאה גבוהה יותר במידה והלוח מסודר בצורה דומה לאותה קונפיגורציית משקלים. נגדיר את קבוצת מטריצות המשקלים פינה(: W corners אשר תכיל את המטריצות הבאות )אחת לכל 4 5 W tr = [ ], W 4 5 tl = [ ], W 3 2 br = [ ], W 5 6 bl = [ ] יהי B מצב לוח של המשחק 2048 מטריצה 4X4 כאשר B ij מייצג אריח בלוח בשורה i ועמודה j. ההיוריסטיקה הראשונה המתאימים: הינה סכום המכפלות בין כל איברי הלוח לאיברי מטריצת המשקל 4 4 h 1 (B) = max B i,j w i,j w W corners i=1 j=1 אסטרטגיה נוספת שרצוי שנממש בצורת היוריסטיקה היא מיזוג אריחים. די ברור שכדי להתקדם במשחק עלינו למקם אריחים זהים אחד ליד השני ולמזג אותם לאחר מכן. נדאג לכך בהגדרת ההיוריסטיקה השנייה ע"י כך שנספור את כל זוגות האריחים הצמודים והזהים בכל שורה ועמודה. equal(x, y) = { 1, x = y 0, otherwise 15

18 4 4 h 2 (B) = equal(b i,j, B i,j 1 ) + equal(b i,j, B i,j 1 ) i=1 j=2 4 4 j=1 i=2 היוריסטיקה שלישית תוגדר להיות כמות האריחים הריקים בלוח. היוריסטיקה זו עוזרת לנו למזג אריחים צמודים מכיוון שכמות אריחים נמוכה יותר אומרת שבוצעו מיזוגים. לכן נשאף לחפש מצבי לוח כמה שיותר ריקים. empty(x) = { 1, x = 0 0, otherwise איור - 7 דוגמה לצורת נחש 4 4 h 3 (B) = empty(b ij ) i=1 j=1 לבסוף נשים לב לאסטרטגיה חשובה שבלעדיה קשה להגיע לתוצאה גבוהה. לפי אסטרטגיה זו, כדאי לנו לסדר את האריחים הגבוהים בצורה מונוטונית דמויית נחש כך שיהיה קל למזג אריחים. באיור 7 ניתן לראות את הכוונה. מצב זה הוא אופטימלי להגעה לאריח מכאן ניתן ברצף למזג את ומיד אח"כ להמשיך עם , וכן הלאה, עד שמגיעים ל במהלך המשחק, כאשר נכפה עלינו לצאת ממצב מונוטוני נוח, המבנה שבנינו יכול לקרוס בקלות ולהוביל לתסבוכת גדולה ולהפסד. הדבר משמעותי מאוד כאשר הערכים בלוח גבוהים במיוחד. לכן, היוריסטיקה זו תמומש בצורת עונש על שורות לא מונוטוניות, נעבור על כל השורות והעמודות ונבדוק מונוטוניות מכל הכיוונים. ניתן משקל גבוה יותר לסדרות לא מונוטוניות של אריחים עם ערך גבוה. בדיקת מונוטוניות של עמודות תתבצע ע"י שחלוף הלוח ובדיקתו בצורת מונוטוניות של שורות. נאמר ששורה היא מונוטונית ימנית אם הערכים של האריחים בה גדלים משמאל לימין כמו השורה השנייה באיור 7. לפי אותו הגיון, השורה הראשונה באיור 7 היא מונוטונית שמאלית. bigger(x, y) = { 1, x y 0, otherwise 4 4 right monotonicity(b) = bigger(b i,j, B i,j 1 ) (B i,j B i,j 1 ) i=1 j=2 4 4 left monotonicity(b) = bigger(b i,j 1, B i,j ) (B i,j 1 B i,j ) i=1 j=2 כעת ניקח את המינימום מבין המונוטוניות השמאלית והימנית כי זוהי היוריסטיקה שלילית ואנו מחפשים פגיעה במונוטוניות. 16

19 monotonicity(b) = min (right monotonicity (B), left monotonicity (B)) h 4 (B) = monotonicity(b) monotonicity(b ) 17

20 3.5 ניסוח מתמטי של האלגוריתם לפתרון המשחק 2048 לשם בניית בינה מלאכותית שתפתור את המשחק 2048, נשתמש באלגוריתם אקספקטימקס תוך שימוש בהיוריסטיקות שתוארו לעיל. נגדיר מושגים, משתנים ופונקציות שבעזרתם נוכל להגדיר את פונקציית ההערכה. תהי right} M B = {up, down, left, קבוצת המהלכים האפשריים במצב לוח.B תהי (m move(b, פונקציה אשר מקבלת מצב לוח B ומהלך m. M הפונקציה מבצעת מהלך בכיוון הנבחר ומחזירה מצב לוח חדש. תהי R B קבוצת כל מצבי הלוח האפשריים המתקבלים מהצבת אריח אקראי בלוח B. B B R B תהי [0,1] ) B P(B, ההסתברות לקבל את מצב הלוח מהלוח ע"י הצבת אריח אקראי. יהי d N משתנה המציין את עומק עץ הרקורסיה הנוכחי. תהי (B) h k פונקצית היוריסטיקה אשר מקבלת מצב לוח B ומחזירה ציון. בנוסף, יהי w k משקל ההיוריסטיקה בפונקציית ההערכה. {N k.1}. כאשר N הוא מספר ההיוריסטיקות. evaluate.b תהי evaluate(b) פונקציית ההערכה למצב לוח מקבלת מצב לוחי סופי node( )terminal ומחזירה ציון לפי הנוסחה: evaluate(b) = w k h k (B) N k=1 האלגוריתם הינו רקורסיבי בשני שלבים המדמים צמתי החלטה של מקסום ומזל. תהי (d score(b, פונקציה רקורסיבית אשר מקבלת מצב לוח ועומק חיפוש. במידה ומצב הלוח הוא סופי, הפונקציה תקרא לפונקציית ההערכה evaluate שתחזיר ציון. במידה ומצב הלוח לא סופי היא קוראת לעצמה שוב ושוב כמספר המהלכים האפשריים. הציון שיוחזר הוא המקסימלי מכל המהלכים האפשריים שנוסו )צומת החלטה(. בכל חזרה מקריאה רקורסיבית תחושב תוחלת הציונים )צומת מזל(. ניתן לנסח אפוא את הנוסחה הרקורסיבית שלפיה האלגוריתם יעבוד: score(b, d) = P(B, B ) { evaluate(b ), if d = 0 or state is terminal max m M score(move(b, m), d 1), otherwise B B R B לכן, בהינתן מצב לוח מסויים בשלב שבו על האלגוריתם להמליץ על מהלך, יבחר המהלך בעל הציון המקסימלי מבין המהלכים האפשריים: decision(b) = argmax score(move(b, m)) m M B 18

21 חלק ג' תהליך האופטימיזציה אופטימיזציה מטה-היוריסטית Optimization( ) Metaheuristic אופטימיזציה מטה-היוריסטית הינו תחום חדש יחסית שהתפתח בשל הצורך לעשות אופטימיזציה לפונקציות מורכבות שאינן בהכרח מתמטיות אלא יותר דומות לבינה המלאכותית שתוארה בסעיפים הקודמים. פונקציות אלה הן בדרך כלל בעלות פרמטרים רבים ואין להן בהכרח פתרון אופטימלי. למרות זאת, עדיין קיים הצורך לעשות לאלגוריתמים אלה אופטימיזציה כדי להשיג תוצאה טובה יותר. שיטת אופטימיזציה מטה-היוריסטית לא נסמכת על תכונה כלשהי של הבעיה למציאת פתרון, אלא מספקת מנגנון כללי למציאת אופטימום לוקאלי של הבעיה. נתייחס לאלגוריתם שלנו כקופסה שחורה )black-box( אשר מקבלת משקלי היוריסטיקות כפרמטרים, מריצה משחק שלם ומחזירה לבסוף את תוצאת המשחק. לאלגוריתם האופטימיזציה אין ידע נוסף לגבי איך פועל האלגוריתם שלנו. תהי :g R n R "פוקציית מעטפת" אשר תקבל כפרמטר את המשקלים ותריץ משחק שלם של 2048 בעזרת האלגוריתם שלנו והמשקלים שהתקבלו. פונקציית המעטפת: 1. function g(w 1, w 2,, w n ) 2. start game with input weights 3. while game is not over do: 4. ask AI for next move 5. execute suggested move 6. execute random move 7. return game final score בתהליך האופטימיזציה נפעיל את פונקצייה g שוב ושוב בצורה איטרטיבית ונחפש פתרון אופטימלי. הפתרון האופטימלי z = (w 1, w 2,, w n ) R n הינו בעל הציון הגבוה ביותר ולכן מקיים את המשוואה: y R n : g(z ) g(y ) הדרך המסורתית לפתור בעיה שכזו היא בעזרת מעקב אחרי הגרדיאנט אך כנראה שהפונקציה שלנו איננה רציפה והגרדיאנט אינו ידוע ולכן בחרתי בשיטה שונה. 19

22 4.2 אופטימיזציית הנחיל Optimization( )Particle Swarm אופטימיזצית הנחיל )PSO( היא שיטת אופטימיזציה מטה-היוריסטית מבוססת אוכלוסייה Optimization( )Population Based Metaheuristic אשר פותחה ב ע"י ד"ר קנדי וד"ר אוורהארט. השיטה נוצרה בהשראת ההתנהגות החברתית של להקת ציפורים או דגים. כדי להבין כיצד פועלת השיטה, אפשר לדמיין להקת ציפורים בשעת חיפוש אחרי אוכל. נניח שמרחב החיפוש שלהן מוגבל, כמו שדה גדול למשל, ושבמקום כלשהו בשדה מונחת כיכר לחם. תחילה, הציפורים אינן יודעות את מיקום הלחם אך ככל שחולף הזמן חלק מהציפורים קרובות יותר ללחם ויכולות להריח או לראות אותו. בסופו של דבר ציפור מוצאת את הלחם. מה יעשו שאר הציפורים? הן יעקבו אחרי הציפור שמצאה את האוכל וכולן באופן טבעי יבוא לחלוק איתה את הארוחה. PSO משתמש באותו הגיון כדי לחפש פתרון אופטימלי במרחב החיפוש. תחילה מגדירים חלקיקים )particles( במיקומים אקראיים ובעלי מהירות אקראית בתחום מרחב החיפוש. כל מיקום של חלקיק מייצג פתרון. ה"ציון" של החלקיק מתקבל ע"י קריאה ל- g עם המיקום שלו כפרמטר )כל קואורדינטה מייצגת משקל אחד(. המהירות אחראית לכוון את החלקיק ליעד נוסף באיטרציה הבאה, שם כל חלקיק יקרא ל- g פעם נוספת עם מיקומו החדש. בכל איטרציה, החלקיק מכוון את מהירותו כדי לעקוב אחרי שני פתרונות מיטביים. הפתרון המיטבי הראשון הוא החלק הקוגניטיבי, שבו החלקיק עוקב אחרי המיקום הטוב ביותר שנמצא עד כה ע"י אותו חלקיק בעצמו. הפתרון השני שלפיו מכוונת המהירות הוא החלק הסוציאלי, שבו החלקיק עוקב אחרי המיקום הטוב ביותר שנמצא עד כה ע"י כל חברי הנחיל )החלקיקים(. PSO איור 8 המחשת פעולת על פונקציה עם אופטימום יחיד. תחילה כל החלקיקים בעלי מהירות ומיקום N איטרציות כל החלקיקים אקראיים. לאחר i איטרציות החלקיקים מתחילים להתקבץ בכיוון הפתרון, ולאחר קרובים מאוד לפתרון האופטימלי. תהי (b rand(a, פונקציה המחזירה מספר אקראי בתחום [b,a]. בכל איטרציה, i N כל חלקיק מכוון את מיקומו ( n )x R ומהירותו ( n )v R ע"י המשוואות הבאות: v i+1 = v i + c 1 rand(0,1) (p best x i ) + c 2 rand(0,1) (s best x i ) 20

23 x i+1 = x i + v i+1 כאשר p best הוא המקסימום של החלקיק עצמו best( )particle ו- s best הוא המקסימום של הנחיל c 1 כולו best(.)swarm לחלק הקוגניטיבי ולחלק הסוציאלי. אלגוריתם :PSO ו- c 2 מייצגים את פקטור המדד החברתי באוכלוסייה ונותנים משקלים 1. function PSO() 2. for each particle 3. Initialize particle with random position and velocity 4. for N iterations 5. for each particle 6. score = g(x ) 7. If score p best 8. p best := score 9. Choose particle with highest p best and set s best as well. 10. Save s best 's x value as optimum 11. Calculate new position and velocity 12. return optimum לאחר N איטרציות, נתבונן ב- s. best מיקומו של s best הינו בעל הציון המקסימלי מבין כל המשחקים ששוחקו. לכן בוחרים את המשקלים שמיוצגים ע"י מיקומו. יש לציין של- PSO מאפיינים משותפים עם אלגוריתמים גנטיים והוא קצת מזכיר את פעולתם. בשניהם המערכת מאותחלת עם אוכלוסייה התחלתית אקראית ומבצעת חיפוש אופטימום ע"י עדכון דורות )generations( של פתרונות. לעומת זאת, בניגוד לאלגוריתמים גנטיים, ל- PSO אין אופרטורים אבולוציונים כגון זיווג )crossover( ומוטציה.)mutation( ב- PSO, הפתרונות הפוטנציאלים )החלקיקים( "עפים" ברחבי מרחב החיפוש ע"י עקיבה אחרי האופטימום הידוע ולא נוצרים לפי לוגיקה אבולוציונית. 21

24 4.3 מהלך הניסוי כאמור, PSO מהווה פונקציית מעטפת לאלגוריתם הבינה המלאכותית המכוונת אותו לפי הפרמטרים משקלי ההיוריסטיקות. פונקציית המעטפת תריץ את האלגוריתם )את המשחק( שוב ושוב מספר קבוע של פעמים ובסופו של דבר תבחר את המשקלים שהניבו את הציון הגבוה ביותר. הרצה של האלגוריתם פעם אחת לוקחת זמן ניכר. זמן זה נע בין עשר שניות לכעשר דקות. כאשר משקלי ההיוריסטיקות כוונו בצורה ידנית לפי האינטואיציה, האלגוריתם לא הצליח להגיע לציונים גבוהים מ- 2,048. משחק כזה נכשל לאחר כ שניות, משחקים פחות טובים נכשלים לאחר פחות מחמש שניות. לעומת זאת, לאחר שהאלגוריתם כוון ע"י תהליך האופטימיזציה, הוא הצליח להגיע לתוצאות טובות בהרבה אך גם זמן המשחק גדל בצורה משמעותית. הניסוי בוצע על מחשב נישא פשוט שנקנה ב- 2012, בעל מעבד Intel Core i5 וזכרון.4GB יש להתחשב בזמני ביצוע של האלגוריתם כאשר מתכננים את הסימולציה מכיוון שהחישוב צריך להתבצע בזמן סביר בהתאם למערכת עליה הוא מתבצע. לכן, בחרתי בכמות של 50 חלקיקים שיבצעו 100 איטרציות של.PSO כלומר, בסימולציה אחת משוחקים בסה"כ 5000 משחקים שלמים של כבר בהרצה הראשונה של הסימולציה )שארכה כ- 5 שעות(, נמצאו משקלים שבזכותם האלגוריתם הצליח להגיע לאריח מירבי בעל ערך 8,192. זהו בערך הגבול שבו זמן ביצוע האלגוריתם )עבור משחק אחד( הוא סביר ולוקח כ- 2 דקות. כמובן שכדי להגיע לאריח בגובה 16,384 יש צורך בזמן כפול לפחות. כדי להגיע ל- 16,384 צריך להגיע פעמיים ל- 8,192 אך בנוסף, נוצר מחסור באריחים ריקים לתמרון ולכן זמן החשיבה גדל וזמן המשחק הכולל גדל משמעותית. מהתבוננות בסדרות המשקלים שנבחרו בכל פעם, שמתי לב שהאלגוריתם נותן משקלים הקרובים לאפס להיוריסטיקה הראשונה. כאשר ניסיתי לבטל אותה לגמרי לא הייתה השפעה ממשית על התוצאות. לבסוף ניסיתי להפוך את ההיוריטיקה לשלילית )עונש( והתוצאות היו מעולות. אני משער שהיוריסטיקה זו התנגשה עם היוריסטיקת המונוטוניות מכיוון שהן משלימות אחת את השניה. כנראה שלמונוטוניות יש יותר השפעה מאשר סידור הלוח בצורת משולש ושינוי המשקל לשלילי עוזר יותר מהסרתו. זה מה שיפה בתהליך אופטימיזציה, לפעמים מוצאים פתרונות שמנוגדים לאינטואיציה, פתרונות שלא היינו מגיעים אליהם ללא ניסוי וטעייה. את הסימולציה השנייה ביצעתי כך שהחלקיקים פוזרו מסביב למיקום שאותו מצאנו בסימולציה הראשונה, זאת כדי להמשיך את המגמה ולהתחיל ממקום שכבר ידוע שמביא תוצאות יפות. ביצעתי גם שינויים בפרמטרים של PSO שמציינים כיצד להגריל מיקום חדש או לשנות מהירות, בתקווה למצוא פתרונות יותר טובים. סימולציה זו ארכה זמן רב מדי וגרמה למחשב לקרוס ממחסור בזכרון. ההשערה שלי הייתה שנמצא משקל שבעזרתו התקבלו תוצאות גבוהות מאוד. לכן, מאותו רגע המשחקים לקחו הרבה יותר זמן והאריכו את זמן הסימולציה מעבר ליכולתו של המחשב. המחשב קרס והתוצאות לא נשמרו ולכן חזרתי על הניסוי. 22

25 בסימולציה השלישית ביצעתי שינויים נוספים והפחתתי את כמות החלקיקים )כמות הזכרון בכל איטרציה( ואת מספר האיטרציות כדי לנסות בכל זאת לשבור את המחסום בזמן חישוב סביר. בנוסף הרצתי הפעם את הסימולציה על מחשב שולחני חזק יותר. הסימולציה השלישית והאחרונה הוגדרה כהצלחה ובסופה קיבלתי משקלים שהביאו את האלגוריתם לאריח שיא בגובה 16,384. אלו המשקלים שנמצאו ע"י PSO והוגדרו להיות משקלי ההיוריסטיקות באלגוריתם: h 1 = , h 2 = , h 3 = , h 4 =

26 4.4 תוצאות לאחר מציאת המשקלים, הרצתי את האלגוריתם 100 פעמים ובדקתי את ביצועיו בצורה סטטיסטית. להלן התוצאות: האריח המקסימלי 32,768 הושג ב- 3 משחקים. האריח המקסימלי 16,384 הושג ב- 27 משחקים. האריח המקסימלי 8,192 הושג ב- 46 משחקים. האריח המקסימלי 4,096 הושג ב- 24 משחקים. בדיקה נוספת שביצעתי היא האם הגדלת עומק החיפוש משפיע על התוצאה. עומק החיפוש של האלגוריתם הוגדל ל- 16 רמות בעץ הרקורסיה )במקום 3-9 רמות(. ביצעתי את הניסוי במשך 3 לילות רצופים ובשלושת הנסיונות הושג אריח מקסימלי של 32,768. אין להסיק מכך כי אחוזי ההצלחה הם 100% להגעה לאריח 32,768 אך כן ניתן להסיק שאחוז ההצלחה עלה בצורה משמעותית. קיימת בעיה לבדוק את העניין בצורה סטטיסטית בגלל זמן הריצה הארוך במיוחד )המשחק האחרון ארך 11 שעות(. 24

27 5. סיכום בתחילת העבודה, עוד בשלב התכנון, הצבתי לעצמי יעד. רציתי שהאלגוריתם יוכל לפחות להשתוות לשחקן אנושי מבחינת האריח המקסימלי שאליו הוא יגיע, משהו בסביבות 4,096-8,192. אני שמח להגיד שהיעד הושג בהצלחה ואף הרבה מעבר לכך. 27% הצלחה בהגעה לאריח מקסימלי של 16,384 ו- 3% הצלחה בהגעה לאריח מקסימלי של 32,768, מראים שהאלגוריתם שתכננתי פועל היטב ובעל ביצועים מעולים. תוצאה זו לא הייתה מושגת במידה ולא הייתי מבצע את תהליך האופטימיזציה המיוחד. ע"י כיוון ידני של משקלי ההיוריסטיקות הצלחתי להגיע לאריח מקסימלי של הממוחשב הושגו התוצאות הטובות באמת. 2,048 ורק לאחר הכיוון נחמד להסתכל על הרצה של משחק מלא ולשים לב לכל אותם מצבים מנוגדי היגיון, שבהם שחקן אנושי לבטח היה עושה טעות ומפסיד במשחק. ע"י שילוב נכון של היוריסטיקות ועומק חיפוש דינמי, האלגוריתם מבצע פעולות חכמות מאוד. בדרך כלל פעולות אלו קשורות בכך שנסרקו המון מהלכים קדימה וזוהה מסלול בעץ ששחקן אנושי בדרך כלל לא היה חושב עליו. כמובן שעדיין יש מקום לשיפור ואפשר להשיג תוצאות טובות אף יותר. מעבר לכוח מחשוב חזק יותר יכול להיות צעד בכיוון הנכון. אפשר גם לשפר את מנגנון ההחלטה לגבי עומק החיפוש ולהוסיף היוריסטיקות חדשות. ישנו גם מקום לשיפור ביעילות האלגוריתם והזכרון שהוא צורך. כל שיפור שכזה יכול לדחוף את האלגוריתם עוד צעד קדימה. אסכם ואומר שמאוד נהנתי במהלך ביצוע הפרוייקט - זה היה אתגר מאוד גדול ועמדתי בו בהצלחה. החכמתי במגוון נושאים וצברתי נסיון מעשי במימוש אלגוריתמים של תורת המשחקים, בינה מלאכותית ואופטימיזציה. ברצוני גם להודות מקרב לב למנחה הפרויקט, ד"ר גבריאל בן סימון על תמיכתו המלאה לכל אורך הפרויקט, על סבלנותו הרבה ועל כל השיחות המעניינות שניהלנו בתקופה זו. 25

28 6. ביבליוגרפיה 1. Claude E. Shannon (1950), Programming a Computer Playing Chess, Philosophical Magazine, Ser. 7, Vol 41, No Russell, Stuart J.; Norvig, Peter (2003). Artificial Intelligence: A Modern Approach (2nd ed.), Upper Saddle River, New Jersey: Prentice Hall, pp Osborne, Martin J., and Ariel Rubinstein (1994). A Course in Game Theory. Cambridge, MA: MIT Print. 4. D. Michie (1966). Game-playing and game-learning automata. In L. Fox (ed.), Advances in Programming and Non-Numerical Computation, pp Kennedy, J.; Eberhart, R. (1995). Particle Swarm Optimization, Proceedings of IEEE International Conference on Neural Networks IV. pp CSS188 lecture, Stanford University Information about PSO. 26

29 7. נספח הוראות התקנה והפעלה לעבודה זו מצורף קובץ.ZIP המכיל את קוד המקור של המערכת וכמו כן קובץ הרצה.EXE רשימת הקבצים: 2048.h Header file with definitions cpp Where the game 2048 and the Expectimax algorithm are implemented. PSO.cpp Where PSO algorithm is implemented py Script to run the AI with graphics directly in browser. Gamectrl.py Remote control to access the game JavaScript controls via keyboard. Buid.bat Batch file to run in Windows Command window and compile the system. Bin\2048.exe Executable file to run a full game using the AI or run a PSO simulation. תהליך התקנה: חובה להתקין קומפיילר של ++C. במקרה שלנו עדיף VS2012 ומעלה. יש להוסיף את הקומפיילר של VS בשם "CL" שכרגע הותקן ל- PATH של ווינדוס או לחלופין לבצע את הפעולות הבאות מתוך ה- window command שבתוך.VS לפתוח את קובץ ה- ZIP ולהגיע לתיקיה המתאימה ב- command window להריץ את הקובץ build.bat שלב זה בהתקנה נחוץ להפעלת הגרסה הגרפית:.5 להוריד Add-On של Firefox בשם Remote Control 1.0 הרצה של משחק בודד: 1. להכנס לתיקיה bin ולהריץ את 2048.exe הרצה של גרסה גרפית: להיכנס לאתר הרשמי של 2048 ולהדליק את התוסף יש להיכנס ל cpp ולהוסיף הערה לשורה: #define NO_GUI להריץ את 2048.py הרצה של :PSO יש להיכנס ל cpp ולהוריד מהערה את פונקציית ה- main של PSO ולשים בהערה את פונקציית ה- main הרגילה. לקמפל מחדש בעזרת build.bat ולהריץ את.2048.exe

חורף תש''ע פתרון בחינה סופית מועד א'

חורף תש''ע פתרון בחינה סופית מועד א' מד''ח 4 - חורף תש''ע פתרון בחינה סופית מועד א' ( u) u u u < < שאלה : נתונה המד''ח הבאה: א) ב) ג) לכל אחד מן התנאים המצורפים בדקו האם קיים פתרון יחיד אינסוף פתרונות או אף פתרון אם קיים פתרון אחד או יותר

Διαβάστε περισσότερα

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur פתרון תרגיל --- 5 מרחבים וקטורים דוגמאות למרחבים וקטורים שונים מושגים בסיסיים: תת מרחב צירוף לינארי x+ y+ z = : R ) בכל סעיף בדקו האם הוא תת מרחב של א } = z = {( x y z) R x+ y+ הוא אוסף הפתרונות של המערכת

Διαβάστε περισσότερα

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m Observabiliy, Conrollabiliy תרגול 6 אובזרווביליות אם בכל רגע ניתן לשחזר את ( (ומכאן גם את המצב לאורך זמן, מתוך ידיעת הכניסה והיציאה עד לרגע, וזה עבור כל צמד כניסה יציאה, אז המערכת אובזרוובילית. קונטרולביליות

Διαβάστε περισσότερα

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( )

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( ) פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד a d U c M ( יהי b (R) a b e ל (R M ( (אין צורך להוכיח). מצאו קבוצה פורשת ל. U בדקו ש - U מהווה תת מרחב ש a d U M (R) Sp,,, c a e

Διαβάστε περισσότερα

במשחקים בצורה אסטרטגית: השחקנים בוחרים אסטרטגיות במקביל ובצורה בלתי תלויה. מייד לאחר מכן מסתיים המשחק. נרצה לדון במשחקים מסוג אחר: השחקנים משחקים לפי

במשחקים בצורה אסטרטגית: השחקנים בוחרים אסטרטגיות במקביל ובצורה בלתי תלויה. מייד לאחר מכן מסתיים המשחק. נרצה לדון במשחקים מסוג אחר: השחקנים משחקים לפי 1 משחקים בצורה רחבה במשחקים בצורה אסטרטגית: השחקנים בוחרים אסטרטגיות במקביל ובצורה בלתי תלויה. מייד לאחר מכן מסתיים המשחק. נרצה לדון במשחקים מסוג אחר: השחקנים משחקים לפי תורות. לכל שחקן יש מספר תורות.

Διαβάστε περισσότερα

ניהול תמיכה מערכות שלבים: DFfactor=a-1 DFt=an-1 DFeror=a(n-1) (סכום _ הנתונים ( (מספר _ חזרות ( (מספר _ רמות ( (סכום _ ריבועי _ כל _ הנתונים (

ניהול תמיכה מערכות שלבים: DFfactor=a-1 DFt=an-1 DFeror=a(n-1) (סכום _ הנתונים ( (מספר _ חזרות ( (מספר _ רמות ( (סכום _ ריבועי _ כל _ הנתונים ( תכנון ניסויים כאשר קיימת אישביעות רצון מהמצב הקיים (למשל כשלים חוזרים בבקרת תהליכים סטטיסטית) נחפש דרכים לשיפור/ייעול המערכת. ניתן לבצע ניסויים על גורם בודד, שני גורמים או יותר. ניסויים עם גורם בודד: נבצע

Διαβάστε περισσότερα

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשעד פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד 1. לכל אחת מן הפונקציות הבאות, קבעו אם היא חח"ע ואם היא על (הקבוצה המתאימה) (א) 3} {1, 2, 3} {1, 2, : f כאשר 1 } 1, 3, 3, 3, { 2, = f לא חח"ע: לדוגמה

Διαβάστε περισσότερα

תרגול מס' 6 פתרון מערכת משוואות ליניארית

תרגול מס' 6 פתרון מערכת משוואות ליניארית אנליזה נומרית 0211 סתיו - תרגול מס' 6 פתרון מערכת משוואות ליניארית נרצה לפתור את מערכת המשוואות יהי פתרון מקורב של נגדיר את השארית: ואת השגיאה: שאלה 1: נתונה מערכת המשוואות הבאה: הערך את השגיאה היחסית

Διαβάστε περισσότερα

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשע"ב זהויות טריגונומטריות

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשעב זהויות טריגונומטריות תרגול חזרה זהויות טריגונומטריות si π α) si α π α) α si π π ), Z si α π α) t α cot π α) t α si α cot α α α si α si α + α siα ± β) si α β ± α si β α ± β) α β si α si β si α si α α α α si α si α α α + α si

Διαβάστε περισσότερα

דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות

דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012) דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות 1. מצאו צורה דיסיונקטיבית נורמלית קנונית לפסוקים הבאים: (ג)

Διαβάστε περισσότερα

ל הזכויות שמורות לדפנה וסטרייך

ל הזכויות שמורות לדפנה וסטרייך מרובע שכל זוג צלעות נגדיות בו שוות זו לזו נקרא h באיור שלעיל, הצלעות ו- הן צלעות נגדיות ומתקיים, וכן הצלעות ו- הן צלעות נגדיות ומתקיים. תכונות ה כל שתי זוויות נגדיות שוות זו לזו. 1. כל שתי צלעות נגדיות

Διαβάστε περισσότερα

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012)

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012) יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012) דף פתרונות 6 נושא: תחשיב הפסוקים: הפונקציה,val גרירה לוגית, שקילות לוגית 1. כיתבו טבלאות אמת לפסוקים הבאים: (ג) r)).((p q) r) ((p r) (q p q r (p

Διαβάστε περισσότερα

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ משוואות רקורסיביות הגדרה: רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים למשל: T = Θ 1 if = 1 T + Θ if > 1 יונתן יניב, דוד וייץ 1 דוגמא נסתכל על האלגוריתם הבא למציאת

Διαβάστε περισσότερα

Logic and Set Theory for Comp. Sci.

Logic and Set Theory for Comp. Sci. 234293 - Logic and Set Theory for Comp. Sci. Spring 2008 Moed A Final [partial] solution Slava Koyfman, 2009. 1 שאלה 1 לא נכון. דוגמא נגדית מפורשת: יהיו } 2,(p 1 p 2 ) (p 2 p 1 ).Σ 2 = {p 2 p 1 },Σ 1 =

Διαβάστε περισσότερα

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin(

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin( א. s in(0 c os(0 s in(60 c os(0 s in(0 c os(0 s in(0 c os(0 s in(0 0 s in(70 מתאים לזהות של cos(θsin(φ : s in(θ φ s in(θcos(φ sin ( π cot ( π cos ( 4πtan ( 4π sin ( π cos ( π sin ( π cos ( 4π sin ( 4π

Διαβάστε περισσότερα

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור הרצאה מס' 1. תורת הקבוצות. מושגי יסוד בתורת הקבוצות.. 1.1 הקבוצה ואיברי הקבוצות. המושג קבוצה הוא מושג בסיסי במתמטיקה. אין מושגים בסיסים יותר, אשר באמצעותם הגדרתו מתאפשרת. הניסיון והאינטואיציה עוזרים להבין

Διαβάστε περισσότερα

תרגיל 13 משפטי רול ולגראנז הערות

תרגיל 13 משפטי רול ולגראנז הערות Mthemtics, Summer 20 / Exercise 3 Notes תרגיל 3 משפטי רול ולגראנז הערות. האם קיים פתרון למשוואה + x e x = בקרן )?(0, (רמז: ביחרו x,f (x) = e x הניחו שיש פתרון בקרן, השתמשו במשפט רול והגיעו לסתירה!) פתרון

Διαβάστε περισσότερα

2016 Shaul Markovitch Shaul Markovitch Shaul Markovitch

2016 Shaul Markovitch Shaul Markovitch Shaul Markovitch חיפוש בעצי משחק 1 2 3 מבוא לבינה מלאכותית שאול מרקוביץ : מרצה מערכות מרובות סוכנים אלגוריתמי החיפוש שלמדנו מניחים שהסוכן הוא היחיד המשנה את העולם ניתן לכן לתכנן סדרת פעולות ולחזות את תוצאתה כאשר קיימים

Διαβάστε περισσότερα

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם תזכורת: פולינום ממעלה או מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה p f ( m i ) = p m1 m5 תרגיל: נתון עבור x] f ( x) Z[ ראשוני שקיימים 5 מספרים שלמים שונים שעבורם p x f ( x ) f ( ) = נניח בשלילה ש הוא

Διαβάστε περισσότερα

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד.

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד. חידה לחימום ( M ש- N > (כך מספרים טבעיים Mו- N שappleי appleתוappleים בעלי אותה הזוגיות (שappleיהם זוגיים או שappleיהם אי - זוגיים). המספרים הטבעיים מ- Mעד Nמסודרים בשורה, ושappleי שחקappleים משחקים במשחק.

Διαβάστε περισσότερα

gcd 24,15 = 3 3 =

gcd 24,15 = 3 3 = מחלק משותף מקסימאלי משפט אם gcd a, b = g Z אז קיימים x, y שלמים כך ש.g = xa + yb במלים אחרות, אם ה כך ש.gcd a, b = xa + yb gcd,a b של שני משתנים הוא מספר שלם, אז קיימים שני מקדמים שלמים כאלה gcd 4,15 =

Διαβάστε περισσότερα

1 תוחלת מותנה. c ארזים 3 במאי G מדיד לפי Y.1 E (X1 A ) = E (Y 1 A )

1 תוחלת מותנה. c ארזים 3 במאי G מדיד לפי Y.1 E (X1 A ) = E (Y 1 A ) הסתברות למתמטיקאים c ארזים 3 במאי 2017 1 תוחלת מותנה הגדרה 1.1 לכל משתנה מקרי X אינטגרבילית ותת סיגמא אלגברה G F קיים משתנה מקרי G) Y := E (X המקיים: E (X1 A ) = E (Y 1 A ).G מדיד לפי Y.1.E Y

Διαβάστε περισσότερα

תרגול פעולות מומצאות 3

תרגול פעולות מומצאות 3 תרגול פעולות מומצאות. ^ = ^ הפעולה החשבונית סמן את הביטוי הגדול ביותר:. ^ ^ ^ π ^ הפעולה החשבונית c) #(,, מחשבת את ממוצע המספרים בסוגריים.. מהי תוצאת הפעולה (.7,.0,.)#....0 הפעולה החשבונית משמשת חנות גדולה

Διαβάστε περισσότερα

שאלה 1 V AB פתרון AB 30 R3 20 R

שאלה 1 V AB פתרון AB 30 R3 20 R תרגילים בתורת החשמל כתה יג שאלה א. חשב את המתח AB לפי משפט מילמן. חשב את הזרם בכל נגד לפי המתח שקיבלת בסעיף א. A 60 0 8 0 0.A B 8 60 0 0. AB 5. v 60 AB 0 0 ( 5.) 0.55A 60 א. פתרון 0 AB 0 ( 5.) 0 0.776A

Διαβάστε περισσότερα

אוטומט סופי דטרמיניסטי מוגדר ע"י החמישייה:

אוטומט סופי דטרמיניסטי מוגדר עי החמישייה: 2 תרגול אוטומט סופי דטרמיניסטי אוטומטים ושפות פורמליות בר אילן תשעז 2017 עקיבא קליינרמן הגדרה אוטומט סופי דטרמיניסטי מוגדר ע"י החמישייה: (,, 0,, ) כאשר: א= "ב שפת הקלט = קבוצה סופית לא ריקה של מצבים מצב

Διαβάστε περισσότερα

התפלגות χ: Analyze. Non parametric test

התפלגות χ: Analyze. Non parametric test מבחני חי בריבוע לבדיקת טיב התאמה דוגמא: זורקים קוביה 300 פעמים. להלן התוצאות שהתקבלו: 6 5 4 3 2 1 תוצאה 41 66 45 56 49 43 שכיחות 2 התפלגות χ: 0.15 התפלגות חי בריבוע עבור דרגות חופש שונות 0.12 0.09 0.06

Διαβάστε περισσότερα

גבול ורציפות של פונקציה סקלרית שאלות נוספות

גבול ורציפות של פונקציה סקלרית שאלות נוספות 08 005 שאלה גבול ורציפות של פונקציה סקלרית שאלות נוספות f ( ) f ( ) g( ) f ( ) ו- lim f ( ) ו- ( ) (00) lim ( ) (00) f ( בסביבת הנקודה (00) ) נתון: מצאו ) lim g( ( ) (00) ננסה להיעזר בכלל הסנדביץ לשם כך

Διαβάστε περισσότερα

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות 25 בדצמבר 2016 תזכורת: תהי ) n f ( 1, 2,..., פונקציה המוגדרת בסביבה של f. 0 גזירה חלקית לפי משתנה ) ( = 0, אם קיים הגבול : 1 0, 2 0,..., בנקודה n 0 i f(,..,n,).lim

Διαβάστε περισσότερα

Charles Augustin COULOMB ( ) קולון חוק = K F E המרחק סטט-קולון.

Charles Augustin COULOMB ( ) קולון חוק = K F E המרחק סטט-קולון. Charles Augustin COULOMB (1736-1806) קולון חוק חוקקולון, אשרנקראעלשםהפיזיקאיהצרפתישארל-אוגוסטיןדהקולוןשהיהאחדהראשוניםשחקרבאופןכמותיאתהכוחותהפועלים ביןשניגופיםטעונים. מדידותיוהתבססועלמיתקןהנקראמאזניפיתול.

Διαβάστε περισσότερα

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx דפי נוסחאות I גבולות נאמר כי כך שלכל δ קיים > ε לכל > lim ( ) L המקיים ( ) מתקיים L < ε הגדרת הגבול : < < δ lim ( ) lim ורק ( ) משפט הכריך (סנדוויץ') : תהיינה ( ( ( )g ( )h פונקציות המוגדרות בסביבה נקובה

Διαβάστε περισσότερα

אינפי - 1 תרגול בינואר 2012

אינפי - 1 תרגול בינואר 2012 אינפי - תרגול 4 3 בינואר 0 רציפות במידה שווה הגדרה. נאמר שפונקציה f : D R היא רציפה במידה שווה אם לכל > 0 ε קיים. f(x) f(y) < ε אז x y < δ אם,x, y D כך שלכל δ > 0 נביט במקרה בו D הוא קטע (חסום או לא חסום,

Διαβάστε περισσότερα

תורת הגרפים - סימונים

תורת הגרפים - סימונים תורת הגרפים - סימונים.n = V,m = E בהינתן גרף,G = V,E נסמן: בתוך סימוני ה O,o,Ω,ω,Θ נרשה לעצמנו אף להיפטר מהערך המוחלט.. E V,O V + E כלומר, O V + E נכתוב במקום אם כי בכל מקרה אחר נכתוב או קשת של גרף לא

Διαβάστε περισσότερα

סיכום- בעיות מינימוםמקסימום - שאלון 806

סיכום- בעיות מינימוםמקסימום - שאלון 806 סיכום- בעיות מינימוםמקסימום - שאלון 806 בבעיותמינימום מקסימוםישלחפשאתנקודותהמינימוםהמוחלטוהמקסימוםהמוחלט. בשאלות מינימוםמקסימוםחובהלהראותבעזרתטבלה אובעזרתנגזרתשנייהשאכן מדובר עלמינימוםאומקסימום. לצורךקיצורהתהליך,

Διαβάστε περισσότερα

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים:

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשעו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים: לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( 2016 2015 )............................................................................................................. חלק ראשון: שאלות שאינן להגשה.1

Διαβάστε περισσότερα

הגדרה: קבוצת פעילויות חוקית היא קבוצה בה כל שתי פעילויות

הגדרה: קבוצת פעילויות חוקית היא קבוצה בה כל שתי פעילויות אלגוריתמים חמדניים אלגוריתם חמדן, הוא כזה שבכל צעד עושה את הבחירה הטובה ביותר האפשרית, ולא מתחרט בהמשך גישה זו נראית פשטנית מדי, וכמובן שלא תמיד היא נכונה, אך במקרים רבים היא מוצאת פתרון אופטימאלי בתרגול

Διαβάστε περισσότερα

x a x n D f (iii) x n a ,Cauchy

x a x n D f (iii) x n a ,Cauchy גבולות ורציפות גבול של פונקציה בנקודה הגדרה: קבוצה אשר מכילה קטע פתוח שמכיל את a תקרא סביבה של a. קבוצה אשר מכילה קטע פתוח שמכיל את a אך לא מכילה את a עצמו תקרא סביבה מנוקבת של a. יהו a R ו f פונקציה מוגדרת

Διαβάστε περισσότερα

{ : Halts on every input}

{ : Halts on every input} אוטומטים - תרגול 13: רדוקציות, משפט רייס וחזרה למבחן E תכונה תכונה הינה אוסף השפות מעל.(property המקיימות תנאים מסוימים (תכונה במובן של Σ תכונה לא טריביאלית: תכונה היא תכונה לא טריוויאלית אם היא מקיימת:.

Διαβάστε περισσότερα

אלגברה מודרנית פתרון שיעורי בית 6

אלגברה מודרנית פתרון שיעורי בית 6 אלגברה מודרנית פתרון שיעורי בית 6 15 בינואר 016 1. יהי F שדה ויהיו q(x) p(x), שני פולינומים מעל F. מצאו פולינומים R(x) S(x), כך שמתקיים R(x),p(x) = S(x)q(x) + כאשר deg(q),deg(r) < עבור המקרים הבאים: (תזכורת:

Διαβάστε περισσότερα

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 315, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשעד, מיום 0/8/0610 שאלונים: 315, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 315, 635865 מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן שאלה מספר 1 נתון: 1. סדרה חשבונית שיש בה n איברים...2 3. האיבר

Διαβάστε περισσότερα

מבני נתונים 08a תרגול 8 14/2/2008 המשך ערמות ליאור שפירא

מבני נתונים 08a תרגול 8 14/2/2008 המשך ערמות ליאור שפירא מבני נתונים 08a תרגול 8 14/2/2008 המשך ערמות ליאור שפירא ערמות פיבונאצ'י Operation Linked List Binary Heap Binomial Heap Fibonacci Heap Relaxed Heap make-heap 1 1 1 1 1 is-empty 1 1 1 1 1 insert 1 log

Διαβάστε περισσότερα

אלגברה ליניארית 1 א' פתרון 2

אלגברה ליניארית 1 א' פתרון 2 אלגברה ליניארית א' פתרון 3 4 3 3 7 9 3. נשתמש בכתיבה בעזרת מטריצה בכל הסעיפים. א. פתרון: 3 3 3 3 3 3 9 אז ישנו פתרון יחיד והוא = 3.x =, x =, x 3 3 הערה: אפשר גם לפתור בדרך קצת יותר ארוכה, אבל מבלי להתעסק

Διαβάστε περισσότερα

co ארזים 3 במרץ 2016

co ארזים 3 במרץ 2016 אלגברה לינארית 2 א co ארזים 3 במרץ 2016 ניזכר שהגדרנו ווקטורים וערכים עצמיים של מטריצות, והראינו כי זהו מקרה פרטי של ההגדרות עבור טרנספורמציות. לכן כל המשפטים והמסקנות שהוכחנו לגבי טרנספורמציות תקפים גם

Διαβάστε περισσότερα

מבני נתונים ויעילות אלגוריתמים

מבני נתונים ויעילות אלגוריתמים מבני נתונים ויעילות אלגוריתמים (8..05). טענה אודות סדר גודל. log טענה: מתקיים Θ(log) (!) = הוכחה: ברור שמתקיים: 3 4... 4 4 4... 43 פעמים במילים אחרות:! נוציא לוגריתם משני האגפים: log(!) log( ) log(a b

Διαβάστε περισσότερα

( )( ) ( ) f : B C היא פונקציה חח"ע ועל מכיוון שהיא מוגדרת ע"י. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חח"ע אז ועל פי הגדרת

( )( ) ( ) f : B C היא פונקציה חחע ועל מכיוון שהיא מוגדרת עי. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חחע אז ועל פי הגדרת הרצאה 7 יהיו :, : C פונקציות, אז : C חח"ע ו חח"ע,אז א אם על ו על,אז ב אם ( על פי הגדרת ההרכבה )( x ) = ( )( x x, כךש ) x א יהיו = ( x ) x חח"ע נקבל ש מכיוון ש חח"ע נקבל ש מכיוון ש ( b) = c כך ש b ( ) (

Διαβάστε περισσότερα

צעד ראשון להצטיינות מבוא: קבוצות מיוחדות של מספרים ממשיים

צעד ראשון להצטיינות מבוא: קבוצות מיוחדות של מספרים ממשיים מבוא: קבוצות מיוחדות של מספרים ממשיים קבוצות של מספרים ממשיים צעד ראשון להצטיינות קבוצה היא אוסף של עצמים הנקראים האיברים של הקבוצה אנו נתמקד בקבוצות של מספרים ממשיים בדרך כלל מסמנים את הקבוצה באות גדולה

Διαβάστε περισσότερα

3-9 - a < x < a, a < x < a

3-9 - a < x < a, a < x < a 1 עמוד 59, שאלהמס', 4 סעיףג' תיקוני הקלדה שאלון 806 צריך להיות : ג. מצאאתמקומושלאיברבסדרהזו, שקטןב- 5 מסכוםכלהאיבריםשלפניו. עמוד 147, שאלהמס' 45 ישלמחוקאתהשאלה (מופיעהפעמיים) עמוד 184, שאלהמס', 9 סעיףב',תשובה.

Διαβάστε περισσότερα

כלליים זמן: S מחסנית, top(s) ראש המחסנית. (Depth First Search) For each unmarked DFS(v) / BFS(v) רקורסיבי. אלגוריתם :BFS

כלליים זמן: S מחסנית, top(s) ראש המחסנית. (Depth First Search) For each unmarked DFS(v) / BFS(v) רקורסיבי. אלגוריתם :BFS כלליים שיטות חיפוש בבגרפים שיטה 1: חיפוש לרוחב S (readth irst Search) זמן: ) Θ( V + הרעיון: שימוש בתור.O שיטה 2: חיפוש לעומק S (epth irst Search) Θ( V + ) יהי =(V,) גרף כלשהו, V הוא צומת התחלת החיפוש.

Διαβάστε περισσότερα

אלגברה ליניארית (1) - תרגיל 6

אלגברה ליניארית (1) - תרגיל 6 אלגברה ליניארית (1) - תרגיל 6 התרגיל להגשה עד יום חמישי (12.12.14) בשעה 16:00 בתא המתאים בבניין מתמטיקה. נא לא לשכוח פתקית סימון. 1. עבור כל אחד מתת המרחבים הבאים, מצאו בסיס ואת המימד: (א) 3)} (0, 6, 3,,

Διαβάστε περισσότερα

אלגברה לינארית (1) - פתרון תרגיל 11

אלגברה לינארית (1) - פתרון תרגיל 11 אלגברה לינארית ( - פתרון תרגיל דרגו את המטריצות הבאות לפי אלגוריתם הדירוג של גאוס (א R R4 R R4 R=R+R R 3=R 3+R R=R+R R 3=R 3+R 9 4 3 7 (ב 9 4 3 7 7 4 3 9 4 3 4 R 3 R R3=R3 R R 4=R 4 R 7 4 3 9 7 4 3 8 6

Διαβάστε περισσότερα

תאריך עדכון אחרון: 27 בפברואר ניתוח לשיעורין analysis) (amortized הוא טכניקה לניתוח זמן ריצה לסדרת פעולות, אשר מאפשר קבלת

תאריך עדכון אחרון: 27 בפברואר ניתוח לשיעורין analysis) (amortized הוא טכניקה לניתוח זמן ריצה לסדרת פעולות, אשר מאפשר קבלת תרגול 3 ניתוח לשיעורין תאריך עדכון אחרון: 27 בפברואר 2011. ניתוח לשיעורין analysis) (amortized הוא טכניקה לניתוח זמן ריצה לסדרת פעולות, אשר מאפשר קבלת חסמי זמן ריצה נמוכים יותר מאשר חסמים המתקבלים כאשר

Διαβάστε περισσότερα

מודלים חישוביים פתרון תרגיל 5

מודלים חישוביים פתרון תרגיל 5 מודלים חישוביים פתרון תרגיל 5 כתוב אוטומט דטרמיניסטי לשפות הבאות מעל הא"ב.Σ={,} א. *Σ. q, ב. q, ג. {ε}, q, q ד. } = 3 {w w mod, q, q,, ה. ''} {w w does not contin the sustring q 4 q 3 q q כתוב אוטומט דטרמיניסטי

Διαβάστε περισσότερα

פרק 13 רקורסיה רקורסיה רקורסיה רקורסיות פשוטות: חישוב עצרת. תמונת המחסנית ב-() factorial רקורסיות פשוטות: פיבונאצ'י

פרק 13 רקורסיה רקורסיה רקורסיה רקורסיות פשוטות: חישוב עצרת. תמונת המחסנית ב-() factorial רקורסיות פשוטות: פיבונאצ'י פרק 3 רקורסיה רקורסיה נכתב ע"י רן רובינשטיין עודכן ע"י איתי שרון רקורסיה הינה שיטה לתכנון אלגוריתמים, שבה הפתרון לקלט כלשהו מתקבל על ידי פתרון אותה הבעיה בדיוק על קלט פשוט יותר, והרחבת פתרון זה לאחר מכן

Διαβάστε περισσότερα

c ארזים 26 בינואר משפט ברנסייד פתירה. Cl (z) = G / Cent (z) = q b r 2 הצגות ממשיות V = V 0 R C אזי מקבלים הצגה מרוכבת G GL R (V 0 ) GL C (V )

c ארזים 26 בינואר משפט ברנסייד פתירה. Cl (z) = G / Cent (z) = q b r 2 הצגות ממשיות V = V 0 R C אזי מקבלים הצגה מרוכבת G GL R (V 0 ) GL C (V ) הצגות של חבורות סופיות c ארזים 6 בינואר 017 1 משפט ברנסייד משפט 1.1 ברנסייד) יהיו p, q ראשוניים. תהי G חבורה מסדר.a, b 0,p a q b אזי G פתירה. הוכחה: באינדוקציה על G. אפשר להניח כי > 1 G. נבחר תת חבורה

Διαβάστε περισσότερα

מבני נתונים ואלגוריתמים תרגול #11

מבני נתונים ואלגוריתמים תרגול #11 מבני נתונים ואלגוריתמים תרגול # התאמת מחרוזות סימונים והגדרות: P[,,m] כך Σ * טקסט T )מערך של תווים( באורך T[,,n] n ותבנית P באורך m ש.m n התווים של P ו T נלקחים מאלפבית סופי Σ. לדוגמא: {a,b,,z},{,}=σ.

Διαβάστε περισσότερα

(2) מיונים השאלות. .0 left right n 1. void Sort(int A[], int left, int right) { int p;

(2) מיונים השאלות. .0 left right n 1. void Sort(int A[], int left, int right) { int p; מבני נתונים פתרונות לסט שאלות דומה לשאלות בנושאים () זמני ריצה של פונקציות רקורסיביות () מיונים השאלות פתרו את נוסחאות הנסיגה בסעיפים א-ג על ידי הצבה חוזרת T() כאשר = T() = T( ) + log T() = T() כאשר =

Διαβάστε περισσότερα

TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE סמסטר אביב תשס"ו מס' סטודנט:

TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE סמסטר אביב תשסו מס' סטודנט: TECHNION ISRAEL INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE הטכניון מכון טכנולוגי לישראל הפקולטה למדעי המחשב מבני נתונים 234218 1 מבחן מועד ב ' סמסטר אביב תשס"ו מרצה: אהוד ריבלין מתרגלים: איתן

Διαβάστε περισσότερα

אלגוריתמים בתורת הגרפים חלק ראשון

אלגוריתמים בתורת הגרפים חלק ראשון גירסה 1. 11.11.22 אלגוריתמים בתורת הגרפים חלק ראשון מסמך זה הינו הראשון בסדרת מסמכים אודות תורת הגרפים, והוא חופף בחלקו לקורס "אלגוריתמים בתורת הגרפים" בטכניון (שאינו מועבר יותר). ברצוני להודות תודה מיוחדת

Διαβάστε περισσότερα

החשמלי השדה הקדמה: (אדום) הוא גוף הטעון במטען q, כאשר גוף B, נכנס אל תוך התחום בו השדה משפיע, השדה מפעיל עליו כוח.

החשמלי השדה הקדמה: (אדום) הוא גוף הטעון במטען q, כאשר גוף B, נכנס אל תוך התחום בו השדה משפיע, השדה מפעיל עליו כוח. החשמלי השדה הקדמה: מושג השדה חשמלי נוצר, כאשר הפיזיקאי מיכאל פרדיי, ניסה לתת הסבר אינטואיטיבי לעובדה שמטענים מפעילים זה על זה כוחות ללא מגע ביניהם. לטענתו, כל עצם בעל מטען חשמלי יוצר מסביבו שדה המשתרע

Διαβάστε περισσότερα

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים.

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים. א{ www.sikumuna.co.il מהי קבוצה? קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים. קבוצה היא מושג יסודי במתמטיקה.התיאור האינטואיטיבי של קבוצה הוא אוסף של עצמים כלשהם. העצמים הנמצאים בקבוצה הם איברי הקבוצה.

Διαβάστε περισσότερα

מתמטיקה בדידה תרגול מס' 5

מתמטיקה בדידה תרגול מס' 5 מתמטיקה בדידה תרגול מס' 5 נושאי התרגול: פונקציות 1 פונקציות הגדרה 1.1 פונקציה f מ A (התחום) ל B (הטווח) היא קבוצה חלקית של A B המקיימת שלכל a A קיים b B יחיד כך ש. a, b f a A.f (a) = ιb B. a, b f או, בסימון

Διαβάστε περισσότερα

תכנון דינאמי. , p p p והמטריצה המתקבלת היא בגודל

תכנון דינאמי. , p p p והמטריצה המתקבלת היא בגודל תכנון אלגוריתמים, אביב, תרגול מס' תכנון דינאמי תכנון דינאמי בתרגול זה נדון בבעיית הכפלת סדרת מטריצות (6..(CLR ראשית נראה דוגמא:. A, A, A, A נסמן את גודל המטריצות בסדרה ע"י סדרת גדלים כאשר, p 5 5 p היא

Διαβάστε περισσότερα

קיום ויחידות פתרונות למשוואות דיפרנציאליות

קיום ויחידות פתרונות למשוואות דיפרנציאליות קיום ויחידות פתרונות למשוואות דיפרנציאליות 1 מוטיבציה למשפט הקיום והיחידות אנו יודעים לפתור משוואות דיפרנציאליות ממחלקות מסוימות, כמו משוואות פרידות או משוואות לינאריות. עם זאת, קל לכתוב משוואה דיפרנציאלית

Διαβάστε περισσότερα

פתרון 4. a = Δv Δt = = 2.5 m s 10 0 = 25. y = y v = 15.33m s = 40 2 = 20 m s. v = = 30m x = t. x = x 0.

פתרון 4. a = Δv Δt = = 2.5 m s 10 0 = 25. y = y v = 15.33m s = 40 2 = 20 m s. v = = 30m x = t. x = x 0. בוחן לדוגמא בפיזיקה - פתרון חומר עזר: מחשבון ודף נוסחאות מצורף זמן הבחינה: שלוש שעות יש להקפיד על כתיבת יחידות חלק א יש לבחור 5 מתוך 6 השאלות 1. רכב נוסע במהירות. 5 m s לפתע הנהג לוחץ על דוושת הבלם והרכב

Διαβάστε περισσότερα

תרגיל 7 פונקציות טריגונומטריות הערות

תרגיל 7 פונקציות טריגונומטריות הערות תרגיל 7 פונקציות טריגונומטריות הערות. פתרו את המשוואות הבאות. לא מספיק למצוא פתרון אחד יש למצוא את כולם! sin ( π (א) = x sin (ב) = x cos (ג) = x tan (ד) = x) (ה) = tan x (ו) = 0 x sin (x) + sin (ז) 3 =

Διαβάστε περισσότερα

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשעו (2016) לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)............................................................................................................. חלק ראשון: שאלות שאינן להגשה 1. עבור

Διαβάστε περισσότερα

קבל מורכב משני מוליכים, אשר אינם במגע אחד עם השני, בכל צורה שהיא. כאשר קבל טעון, על כל "לוח" יש את אותה כמות מטען, אך הסימנים הם הפוכים.

קבל מורכב משני מוליכים, אשר אינם במגע אחד עם השני, בכל צורה שהיא. כאשר קבל טעון, על כל לוח יש את אותה כמות מטען, אך הסימנים הם הפוכים. קבל קבל מורכב משני מוליכים, אשר אינם במגע אחד עם השני, בכל צורה שהיא. כאשר קבל טעון, על כל "לוח" יש את אותה כמות מטען, אך הסימנים הם הפוכים. על לוח אחד מטען Q ועל לוח שני מטען Q. הפוטנציאל על כל לוח הוא

Διαβάστε περισσότερα

סיכום חקירת משוואות מהמעלה הראשונה ומהמעלה השנייה פרק זה הינו חלק מסיכום כולל לשאלון 005 שנכתב על-ידי מאיר בכור

סיכום חקירת משוואות מהמעלה הראשונה ומהמעלה השנייה פרק זה הינו חלק מסיכום כולל לשאלון 005 שנכתב על-ידי מאיר בכור סיכום חקירת משוואות מהמעלה הראשונה ומהמעלה השנייה פרק זה הינו חלק מסיכום כולל לשאלון 5 שנכתב על-ידי מאיר בכור. חקירת משוואה מהמעלה הראשונה עם נעלם אחד = הצורה הנורמלית של המשוואה, אליה יש להגיע, היא: b

Διαβάστε περισσότερα

פתרונות , כך שאי השוויון המבוקש הוא ברור מאליו ולכן גם קודמו תקף ובכך מוכחת המונוטוניות העולה של הסדרה הנתונה.

פתרונות , כך שאי השוויון המבוקש הוא ברור מאליו ולכן גם קודמו תקף ובכך מוכחת המונוטוניות העולה של הסדרה הנתונה. בחינת סיווג במתמטיקה.9.017 פתרונות.1 סדרת מספרים ממשיים } n {a נקראת מונוטונית עולה אם לכל n 1 מתקיים n+1.a n a האם הסדרה {n a} n = n היא מונוטונית עולה? הוכיחו תשובתכם. הסדרה } n a} היא אכן מונוטונית

Διαβάστε περισσότερα

ניתוח סיבוכיות - פונקציות רקורסיביות פיתוח טלסקופי

ניתוח סיבוכיות - פונקציות רקורסיביות פיתוח טלסקופי ניתוח סיבוכיות - פונקציות רקורסיביות פיתוח טלסקופי ננסה להשתמש בכך שהפונקציה היא רקורסיבית על מנת לרשום גם עבור הסיבוכיות ביטוי רקורסיבי. factorial() 3 מתחילים מכתיבת ביטוי לא מפורש ל-( T( ביטוי רקורסיבי

Διαβάστε περισσότερα

הסתברות שבתחנה יש 0 מוניות ו- 0 נוסעים. הסתברות שבתחנה יש k-t נוסעים ו- 0 מוניות. λ λ λ λ λ λ λ λ P...

הסתברות שבתחנה יש 0 מוניות ו- 0 נוסעים. הסתברות שבתחנה יש k-t נוסעים ו- 0 מוניות. λ λ λ λ λ λ λ λ P... שאלה תורת התורים קצב הגעת נוסעים לתחנת מוניות מפולג פואסונית עם פרמטר λ. קצב הגעת המוניות מפולג פואסונית עם פרמטר µ. אם נוסע מגיע לתחנה כשיש בה מוניות, הוא מייד נוסע במונית. אם מונית מגיעה לתחנה כשיש בתחנה

Διαβάστε περισσότερα

תוכן הפרק: ,best case, average case דוגמאות 1. זמן - נמדד באמצעות מס' פעולות סיבוכיות, דוגמאות, שיפור בפקטור קבוע האלגוריתם. וגודלם. איטרטיביים. לקלט.

תוכן הפרק: ,best case, average case דוגמאות 1. זמן - נמדד באמצעות מס' פעולות סיבוכיות, דוגמאות, שיפור בפקטור קבוע האלגוריתם. וגודלם. איטרטיביים. לקלט. פרק סיבוכיות פרק סיבוכיות המושג יעילות מהו? במדעי המחשב היעילות נמדדת בעזרת מדדי סיבוכיות, החשובים שבהם: של אלגוריתמים יעילותם תוכן הפרק: יעילות מהי (זיכרון וזמן, זמן ריצה T( של אלגוריתם מהו, מהם case,

Διαβάστε περισσότερα

מתמטיקה בדידה תרגול מס' 13

מתמטיקה בדידה תרגול מס' 13 מתמטיקה בדידה תרגול מס' 13 נושאי התרגול: תורת הגרפים. 1 מושגים בסיסיים נדון בגרפים מכוונים. הגדרה 1.1 גרף מכוון הוא זוג סדור E G =,V כך ש V ו E. V הגרף נקרא פשוט אם E יחס אי רפלקסיבי. כלומר, גם ללא לולאות.

Διαβάστε περισσότερα

הגדרה: מצבים k -בני-הפרדה

הגדרה: מצבים k -בני-הפרדה פרק 12: שקילות מצבים וצמצום מכונות לעי תים קרובות, תכנון המכונה מתוך סיפור המעשה מביא להגדרת מצבים יתי רים states) :(redundant הפונקציה שהם ממלאים ניתנת להשגה באמצעו ת מצבים א חרים. כיוון שמספר רכיבי הזיכרון

Διαβάστε περισσότερα

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק יום א 14 : 00 15 : 00 בניין 605 חדר 103 http://u.cs.biu.ac.il/ brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק 29/11/2017 1 הגדרת קבוצת הנוסחאות הבנויות היטב באינדוקציה הגדרה : קבוצת הנוסחאות הבנויות

Διαβάστε περισσότερα

מתכנס בהחלט אם n n=1 a. k=m. k=m a k n n שקטן מאפסילון. אם קח, ניקח את ה- N שאנחנו. sin 2n מתכנס משום ש- n=1 n. ( 1) n 1

מתכנס בהחלט אם n n=1 a. k=m. k=m a k n n שקטן מאפסילון. אם קח, ניקח את ה- N שאנחנו. sin 2n מתכנס משום ש- n=1 n. ( 1) n 1 1 טורים כלליים 1. 1 התכנסות בהחלט מתכנס. מתכנס בהחלט אם n a הגדרה.1 אומרים שהטור a n משפט 1. טור מתכנס בהחלט הוא מתכנס. הוכחה. נוכיח עם קריטריון קושי. יהי אפסילון גדול מ- 0, אז אנחנו יודעים ש- n N n>m>n

Διαβάστε περισσότερα

PDF created with pdffactory trial version

PDF created with pdffactory trial version הקשר בין שדה חשמלי לפוטנציאל חשמלי E נחקור את הקשר, עבור מקרה פרטי, בו יש לנו שדה חשמלי קבוע. נתון שדה חשמלי הקבוע במרחב שגודלו שווה ל. E נסמן שתי נקודות לאורך קו שדה ו המרחק בין הנקודות שווה ל x. המתח

Διαβάστε περισσότερα

מתמטיקה בדידה תרגול מס' 12

מתמטיקה בדידה תרגול מס' 12 מתמטיקה בדידה תרגול מס' 2 נושאי התרגול: נוסחאות נסיגה נוסחאות נסיגה באמצעות פונקציות יוצרות נוסחאות נסיגה באמצעות פולינום אופייני נוסחאות נסיגה לעתים מפורש לבעיה קומבינטורית אינו ידוע, אך יחסית קל להגיע

Διαβάστε περισσότερα

מבוא לרשתות - תרגול מס 5 תורת התורים

מבוא לרשתות - תרגול מס 5 תורת התורים מ( מבוא לרשתות - תרגול מס 5 תורת התורים M / M / תאור המערכת: תור שרת שירות פואסוני הגעה פואסונית הערות: במערכת M/M/ יש חוצץ אינסופי ולכן יכולים להיות בה אינסוף לקוחות, כאשר מקבל שירות והשאר ממתינים. קצב

Διαβάστε περισσότερα

דינמיקה כוחות. N = kg m s 2 מתאפסת.

דינמיקה כוחות. N = kg m s 2 מתאפסת. דינמיקה כאשר אנו מנתחים תנועה של גוף במושגים של מיקום, מהירות ותאוצה כפי שעשינו עד כה, אנו מדלגים על ניתוח הכוחות הפועלים על הגוף. כוחות אלו ומסתו של הגוף הם אשר קובעים את תאוצתו. על מנת לקבל קשר בין הכוחות

Διαβάστε περισσότερα

חישוביות הרצאה 4 לא! זיהוי שפות ע''י מכונות טיורינג הוכחה: הגדרת! : f r

חישוביות הרצאה 4 לא! זיהוי שפות ע''י מכונות טיורינג הוכחה: הגדרת! : f r ל' ' פונקציות פרימיטיביות רקורסיביות חישוביות הרצאה 4 האם כל פונקציה מלאה היא פרימיטיבית רקורסיבית? לא נראה שתי הוכחות: פונקציות רקורסיביות (המשך) זיהוי שפות ע''י מכונות טיורינג הוכחה קיומית: קיימות פונקציות

Διαβάστε περισσότερα

משפטי בקרה ולולאות שעור מס. 3 כל הזכויות שמורות דר' דרור טובי המרכז האוניברסיטאי אריאל

משפטי בקרה ולולאות שעור מס. 3 כל הזכויות שמורות דר' דרור טובי המרכז האוניברסיטאי אריאל משפטי בקרה ולולאות שעור מס. 3 דרור טובי דר' 1 כל הזכויות שמורות דר' דרור טובי המרכז האוניברסיטאי אריאל - הקדמה משפט התנאי if המשימה: ברצוננו לכתוב תוכנית המקבלת שני מספרים בסדר כל שהוא ולהדפיס אותם בסדר

Διαβάστε περισσότερα

אלגברה ליניארית 1 א' פתרון 7

אלגברה ליניארית 1 א' פתרון 7 אלגברה ליניארית 1 א' פתרון 7 2 1 1 1 0 1 1 0 1 0 2 1 1 0 1 0 2 1 2 1 1 0 2 1 0 1 1 3 1 2 3 1 2 0 1 5 1 0 1 1 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 0 4 0 0 0.1 עבור :A לכן = 3.rkA עבור B: נבצע פעולות עמודה אלמנטריות

Διαβάστε περισσότερα

נספח לפרק 10 דוגמא לאנליזה של מכונת מצבים ננסה להבין את פעולתה של מ כונת המצבים הבאה : Input X. q 0 q 1. output D FF-0 D FF-1. clk

נספח לפרק 10 דוגמא לאנליזה של מכונת מצבים ננסה להבין את פעולתה של מ כונת המצבים הבאה : Input X. q 0 q 1. output D FF-0 D FF-1. clk נספח לפרק 10 דוגמא לאנליזה של מכונת מצבים ננסה להבין את פעולתה של מ כונת המצבים הבאה : Input X D FF-0 q 0 q 1 Z D FF-1 output clk 424 מצב המכונה מוגדר על ידי יציאות רכיבי הזיכרון. נסמן את המצב הנוכחי q

Διαβάστε περισσότερα

f ( x, y) 1 5y axy x xy ye dxdy לדוגמה: axy + + = a ay e 3 2 a e a y ( ) במישור. xy ואז dxdy למישור.xy שבסיסם dxdy וגבהם y) f( x, איור 25.

f ( x, y) 1 5y axy x xy ye dxdy לדוגמה: axy + + = a ay e 3 2 a e a y ( ) במישור. xy ואז dxdy למישור.xy שבסיסם dxdy וגבהם y) f( x, איור 25. ( + 5 ) 5. אנטגרלים כפולים., f ( המוגדרת במלבן הבא במישור (,) (ראה באיור ). נתונה פונקציה ( β α f(, ) נגדיר את הסמל הבא dd e dd 5 + e ( ) β β איור α 5. α 5 + + = e d d = 5 ( ) e + = e e β α β α f (, )

Διαβάστε περισσότερα

פרק 8: עצים. .(Tree) במשפטים הגדרה: גרף ללא מעגלים נקרא יער. דוגמה 8.1: תרגילים: הקודקודים 2 ו- 6 בדוגמה הוא ).

פרק 8: עצים. .(Tree) במשפטים הגדרה: גרף ללא מעגלים נקרא יער. דוגמה 8.1: תרגילים: הקודקודים 2 ו- 6 בדוגמה הוא ). מבוא לפרק: : עצים.(ree) עצים הם גרפים חסרי מעגלים. כך, כיוון פרק זה הוא מעין הפוך לשני הפרקים הקודמים. עץ יסומן לרב על ידי במשפטים 8.1-8.3 נפתח חלק מתכונותיו, ובהמשך נדון בהיבטים שונים של "עץ פורש" של

Διαβάστε περισσότερα

The No Arbitrage Theorem for Factor Models ג'רמי שיף - המחלקה למתמטיקה, אוניברסיטת בר-אילן

The No Arbitrage Theorem for Factor Models ג'רמי שיף - המחלקה למתמטיקה, אוניברסיטת בר-אילן .. The No Arbitrage Theorem for Factor Models ג'רמי שיף - המחלקה למתמטיקה, אוניברסיטת בר-אילן 03.01.16 . Factor Models.i = 1,..., n,r i נכסים, תשואות (משתנים מקריים) n.e[f j ] נניח = 0.j = 1,..., d,f j

Διαβάστε περισσότερα

פתרון תרגיל דוגמא מרחב המדגם הוא כל הקומבינציות של 20 חודשי הולדת. לכל ילד 12 אפשרויות,לכן. לכן -

פתרון תרגיל דוגמא מרחב המדגם הוא כל הקומבינציות של 20 חודשי הולדת. לכל ילד 12 אפשרויות,לכן. לכן - פתרון תרגיל דוגמא מרחב המדגם הוא כל הקומבינציות של 0 חודשי הולדת לכל ילד אפשרויות,לכן לכן - 0 A 0 מספר קומבינציות שלא מכילות את חודש תשרי הוא A) המאורע המשלים ל- B הוא "אף תלמיד לא נולד באחד מהחודשים אב/אלול",

Διαβάστε περισσότερα

מתמטיקה בדידה תרגול מס' 2

מתמטיקה בדידה תרגול מס' 2 מתמטיקה בדידה תרגול מס' 2 נושאי התרגול: כמתים והצרנות. משתנים קשורים וחופשיים. 1 כמתים והצרנות בתרגול הקודם עסקנו בתחשיב הפסוקים, שבו הנוסחאות שלנו היו מורכבות מפסוקים יסודיים (אשר קיבלו ערך T או F) וקשרים.

Διαβάστε περισσότερα

לדוגמא : dy dx. xdx = x. cos 1. cos. x dx 2. dx = 2xdx לסיכום: 5 sin 5 1 = + ( ) הוכחה: [ ] ( ) ( )

לדוגמא : dy dx. xdx = x. cos 1. cos. x dx 2. dx = 2xdx לסיכום: 5 sin 5 1 = + ( ) הוכחה: [ ] ( ) ( ) 9. חשבון אינטגרלי. עד כה עסקנו בבעיות של מציאת הנגזרת של פונקציה נתונה. נשאלת השאלה בהינתן נגזרת האם נוכל למצוא את הפונקציה המקורית (הפונקציה שנגזרתה נתונה)? זוהי שאלה קשה יותר, חשבון אינטגרלי דן בבעיה

Διαβάστε περισσότερα

T 1. T 3 x T 3 בזווית, N ( ) ( ) ( ) התלוי. N mg שמאלה (כיוון

T 1. T 3 x T 3 בזווית, N ( ) ( ) ( ) התלוי. N mg שמאלה (כיוון קיץ 006 f T א. כיוון שמשקל גדול יותר של m יוביל בסופו של דבר למתיחות גדולה יותר בצידה הימני, m עלינו להביט על המצב בו פועל כוח החיכוך המקס', ז"א של : m הכוחות על הגוף במנוחה (ז"א התמדה), לכן בכל ציר הכוחות

Διαβάστε περισσότερα

רשימת משפטים והגדרות

רשימת משפטים והגדרות רשימת משפטים והגדרות חשבון אינפיניטיסימאלי ב' מרצה : למברג דן 1 פונקציה קדומה ואינטגרל לא מסויים הגדרה 1.1. (פונקציה קדומה) יהי f :,] [b R פונקציה. פונקציה F נקראת פונקציה קדומה של f אם.[, b] גזירה ב F

Διαβάστε περισσότερα

עצי 2-3 תזכורת: בנים. דוגמאות: Chapter 19: B trees ( ) Chapter 15: Augmenting data structures ( )

עצי 2-3 תזכורת: בנים. דוגמאות: Chapter 19: B trees ( ) Chapter 15: Augmenting data structures ( ) עצים מאוזנים Lecture 5 of Geiger & Itai s slide brochure www.cs.technion.ac.il/~dang/courseds תזכורת: משפחת עצים נקראת מאוזנת אם ( h. = (log עצי -3 ועצי דרגות עצי AVL הם עצים מאוזנים. עצי 3- מהווים דוגמא

Διαβάστε περισσότερα

אלגוריתמים ללכסון מטריצות ואופרטורים

אלגוריתמים ללכסון מטריצות ואופרטורים אלגוריתמים ללכסון מטריצות ואופרטורים לכסון מטריצות יהי F שדה ו N n נאמר שמטריצה (F) A M n היא לכסינה אם היא דומה למטריצה אלכסונית כלומר, אם קיימת מטריצה הפיכה (F) P M n כך ש D P AP = כאשר λ λ 2 D = λ n

Διαβάστε περισσότερα

c ארזים 15 במרץ 2017

c ארזים 15 במרץ 2017 הסתברות למתמטיקאים c ארזים 15 במרץ 2017 הקורס הוא המשך של מבוא להסתברות שם דיברנו על מרחבים לכל היותר בני מניה. למשל, סדרת הטלות מטבע בלתי תלויות היא דבר שאי אפשר לממש במרחב בן מניה נסמן את התוצאה של ההטלה

Διαβάστε περισσότερα

דיאגמת פאזת ברזל פחמן

דיאגמת פאזת ברזל פחמן דיאגמת פאזת ברזל פחמן הריכוז האוטקטי הריכוז האוטקטוידי גבול המסיסות של פריט היווצרות פרליט מיקרו-מבנה של החומר בפלדה היפר-אוטקטואידית והיפו-אוטקטוידית. ככל שמתקרבים יותר לריכוז האוטקטואידי, מקבלים מבנה

Διαβάστε περισσότερα

מבני נתונים. אחרי שלב זה המשיכו והריצו את מיון מהיר על המערך. תארו את כל שלבי הרקורסיה, אך עתה אין צורך להיכנס לתיאור הריצה של.

מבני נתונים. אחרי שלב זה המשיכו והריצו את מיון מהיר על המערך. תארו את כל שלבי הרקורסיה, אך עתה אין צורך להיכנס לתיאור הריצה של. מבני נתונים תרגיל 2 פתרונות מיון מהיר 1. הריצו את השיטה partition על המערך הבא. הראו את שלבי הריצה השונים. 6, 10, 20, 4, 2, 15, 5, 99, 12, 1 אחרי שלב זה המשיכו והריצו את מיון מהיר על המערך. תארו את כל

Διαβάστε περισσότερα

דוגמה: יהי T עץ בינארי כפי שמתואר בציור הבא:

דוגמה: יהי T עץ בינארי כפי שמתואר בציור הבא: של שאלות מבחינות פתרונות.1 שאלהזוהופיעהבמבחןמועדג 01 דוגמה: יהי T עץ בינארי כפי שמתואר בציור הבא: הגדרות: עבור צומת בעץ בינארי T נסמן ב- T את תת העץ של T ששורשו. (תת העץ הזה כולל את ). נגדיר את תת העץ

Διαβάστε περισσότερα

תשובות מלאות לבחינת הבגרות במתמטיקה מועד חורף תשע"א, מיום 31/1/2011 שאלון: מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן.

תשובות מלאות לבחינת הבגרות במתמטיקה מועד חורף תשעא, מיום 31/1/2011 שאלון: מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן. בB בB תשובות מלאות לבחינת הבגרות במתמטיקה מועד חורף תשע"א, מיום 31/1/2011 שאלון: 035804 מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן שאלה מספר 1 נתון: 1 מכונית נסעה מעיר A לעיר B על כביש ראשי

Διαβάστε περισσότερα

מינימיזציה של DFA מינימיזציה של הקנוני שאותה ראינו בסעיף הקודם. בנוסף, נוכיח את יחידות האוטומט המינימלי בכך שנראה שכל אוטומט על ידי שינוי שמות

מינימיזציה של DFA מינימיזציה של הקנוני שאותה ראינו בסעיף הקודם. בנוסף, נוכיח את יחידות האוטומט המינימלי בכך שנראה שכל אוטומט על ידי שינוי שמות מינימיזציה של DFA L. הוא אוטמומט מינימלי עבור L של שפה רגולרית A ראינו בסוף הסעיף הקודם שהאוטומט הקנוני קיים A DFA בכך הוכחנו שלכל שפה רגולרית קיים אוטומט מינמלי המזהה אותה. זה אומר שלכל נקרא A A לאוטומט

Διαβάστε περισσότερα

אוסף שאלות מס. 3 פתרונות

אוסף שאלות מס. 3 פתרונות אוסף שאלות מס. 3 פתרונות שאלה מצאו את תחום ההגדרה D R של כל אחת מהפונקציות הבאות, ושרטטו אותו במישור. f (x, y) = x + y x y, f 3 (x, y) = f (x, y) = xy x x + y, f 4(x, y) = xy x y f 5 (x, y) = 4x + 9y 36,

Διαβάστε περισσότερα